questions and answers for object oriented progamming in c++
TRANSCRIPT
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 1/77
QUESTIONS AND ANSWERS
FOR
OBJECT ORIENTEDPROGRAMMING IN C++
SARUMATHI PUBLICATIONS
No. 109, Pillayar Kovil Street, Periya Kalapet
Pondicherry – 605014, India
Phone: 0413 – 2656368
Mobile: 9786554175, 8940872274
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 2/77
QUESTIONS AND ANSWERS
FOR
OBJECT ORIENTEDPROGRAMMING IN C++
G.Appasami, M.Sc., M.C.A., M.Phil., M.Tech.,
Assistant Professor
Department of Computer Science and Engineering
Dr. Pauls Engineering Collage
Pauls Nagar, Villupuram
Tamilnadu, India.
SARUMATHI PUBLICATIONS
No. 109, Pillayar Kovil Street, Periya Kalapet
Pondicherry – 605014, India
Phone: 0413 – 2656368
Mobile: 9786554175, 8940872274
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 3/77
First Edition: July 2010
Second Edition: July 2011
Published BySARUMATHI PUBLICATIONS
© All rights reserved. No part of this publication can be reproduced or stored in any
form or by means of photocopy, recording or otherwise without the prior written
permission of the author.
Price Rs. 60/-
Copies can be had from
SARUMATHI PUBLICATIONS
No. 109, Pillayar Kovil Street, Periya Kalapet
Pondicherry – 605014, India
Phone: 0413 – 2656368
Mobile: 9786554175, 8940872274
Printed at
Meenam Offset
Pondicherry – 605014, India
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 4/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 1
OBJECT ORIENTED
PROGRAMMING IN C++
QUESTIONS
WITH
SHORT ANSWERS
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 5/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 2
1. Who developed C++?
C++ was developed at AT & T Bell laboratories in the early 1980s
by Bjarne Stroustrup. The name C++ (pronounced as C plus plus) was
coined by Rick Mascitti where “++” is the C increment operator.
2. Explain Basic Concepts of OOP☺
2. List out the Salient features of OOP
2. Write the characteristics of OOP
2. List out the elements of OOP
The basic concepts of OOP are Class, object, Data abstraction,
Encapsulation, Inheritance, Polymorphism, Dynamic binding and message
passing.
Concept MeaningClass Class is a user defined data type
Object Object is an run time entity of class
Abstraction The act of representing essential features without
including the background details
Encapsulation The wrapping up of the data and functions into a
single unit (called class) is known as
encapsulation
Inheritance The mechanism of deriving a new class fromexisting class is called inheritance
Polymorphism The ability to take more than one form. More
operations in same name. polymorphism means
one name multiple forms
Dynamic binding The addresses of the functions are determined at
run time rather than compile time (late binding).
Linking of a procedure to execution code.
Message
Communication
Objects interaction by sending messages to each
other
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 6/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 3
3. What are the Applications of OOP? ®
• Real time systems
• Simulation and modeling
• Object – Oriented Data bases
• Hypertext, hypermedia and expert text
• AI and Expert Systems
• Neural networks and expert systems
• Desition support and office automation systems
• CIM/CAD/CAM Systems
4. How does a C++ Class differ from a C++ structure?
Structure Class
Default access is public Default access is private
Data Data & functions
Default inheritance type is public Default is private inheritance
5. What is namespace?
Namespace is a collection of classes arranged in a hierarchical
order. If we include more header files, then there is a chance to have same
classes in different files. This is a problem for compiler to select a class
from which header file. This problem is solved by standard namespace.
Ex.: using namespace std;
6. Write a simple C++ program to print a string on a screen
#include<iostream.h>
main()
{
cout<<”C++ is Super set of C”;
}
7. Write a simple C++ program using class and objects
#include<iostream.h>
class person //New data type
{ char name[30]; //Data member
int age; //Data member
public: //Public access
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 7/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 4
void getdata(void); //Function declaration
void display(void);
};
void person : : getdata(void) //Function definition
{ cout<< “Enter Name: ”;cin>>name;
cout<< “Enter age: ”;
cin>>age;
}
void person : : display(void)
{ cout<< “\n Name: ” << name;
cout<< “\n Age: ” << age;
}
main()
{
person p; //Person object
p.getdata();
p.display();
}
8. Explain Input and Output operators in C++
8. Explain Extraction and Insertion operators in C++
The operator >> is known as extraction or get from operator. Itextracts (takes or inputs) the value from the keyboard. eg: cin>>sum;
The operator << is called the insertion or put to operator. It inserts
(sends or outputs) the contents of variables or messages. eg:
cout<<”SUM”<<sum;
The Identifiers cin and cout are predefined objects. the operators <<
and >> can be overloaded.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 8/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 5
9. Write the structure of C++ program
A typical C++ program would contain four sections as shown in the
figure.
10. What stream class is required to create an output stream? ®
Ostream classes is required to create an output stream.
Note: istream class for input. Iostream for input & output
11. What are the uses of void? ®
• To specify the return type of function when it is not returning any
value.
• To indicate an empty argument list to a function.
12. What are the difference between normal variable and reference
variable?
S normal variable reference variable
1 It holds data It holds address
2 It is not a poiner It is a pointer to another variable.
3 It is a variable tostore value in
memory
It is a variable to store address of another variable in memory
4 Ex.: int x; Ex.: int *ptr;
13. Write C++ character set
Like the C language, C++ also comprises a character set from which
the tokens (basic types of elements essential for programming coding) are
constructed. The character set comprises of “A” .. “Z” , “a” .. “z”, 0 .. 9, +,
-, /, *,\, (, ), [, ], {, }, =, !=, <, >, . , ’ “ ; : %, ! , &, ?, _, #, <=, >=, @, white
space, horizontal tab, carriage return and other characters.
Include filesClass declaration
Class function definitions
Main function program
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 9/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 6
14. What is a TOKEN? ®
A token is the smallest individual unit in a program. Tokens are
classified as shown in Figure.
15. List out few key words in C++.
16. Explain operator and operand.
Operator specifies an operation to be performed that yields a value.
An operand is an entity on which an operator acts.
For example: RESULT = NUM1 + NUM2
NUM1 and NUM2 are operands. + is the additional operator, that
performs the addition of the numbers. The result (value) generated is stored
in the variable RESULT by virtue of “=” (Assignment) operator. Table
shows the operators in C++.
17. List out the operators in C++
The following operators are specific to C++.
:: .* ->* ::* new delete endl setw
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 10/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 7
18. List out the Advantages of new operator
1. New operator automatically computes the size of the data
object. We need not use the size of operator.
2. It automatically returns the correct pointer type. So that there is
no need to use a type cast.3. It is possible to initialize the object while creating the memory
space.
4. Like other operator, new and delete can be overloaded.
19. List out the Operators classification.
Operators are classified as Arithmetic, Assignment, Component
Selection, Shift, Conditional Logical, Manipulator, Member
dereferencing, Preprocessor, Relational, Scope Resolution, Type Cast
Memory Management. etc
Based on operand requirements, operators are also classified as
Unary operators require one operand:
&, !, *, ++, --, +, -, ~.
Binary operator requires two operands:
+, -, *, /, <, <=, <<, ==, +=, &, |, ^, ., ->, .*, ...
Ternary operator requires three operands:
?:
20. What are all the operators that cannot be overloaded? ®
Direct member access operator .
De-reference pointer to class member operator .*
Scope resolution operator ::
Conational operator ?:
Size of operator Sizeof
21. What are the uses of scope resolution operators? ®
• It is used to define local or global of data and funs.
• It is used to qualify hidden names
• It is used to qualify class member names
• It is used to get or set the inner or outer variables.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 11/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 8
22. Can the precedence order of an operator be altered?
Yes, the precedence order of an operator can be altered by using
parenthesis.
23. Give an example for type cast operation
int avg, sum, num;
avg = sum / float(num);
Now num integer variable is promoted to float
24. Explain Expression with an example.
An expression is a combination of operators, constants and
variables arranged as per the rule of the language. It may also include
function call with return call. An expression may consist of one or moreoperands and zero or more operators to produce value.
Ex. A=(B/2)+(C*10.5)
25. What is an expression?
An expression is a program construct or operation created by
combination of operators and operands.
Ex.: C = A+ B
26. Write the types of expressions
There are four types of expressions. They are:
Constant expressions consist of only constant values
Ex.: 15 25+10/2.0 ‘M’
Integral expressions are those which produce integer results
Ex.: m*n-5 m-‘x’ 5+int(2.7)
Where m and n are integer variables
Float expressions are those which produce floating-point results
Ex.: x+y x*y/10 5+float(10)
Where x and y are floating-point variables
Pointer expressions produce address variablesEx.: &m *ptr ptr+1
Where m is a variable and ptr is a pointer
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 12/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 9
27. Write branching and looping statements? ®
Branching (Selection )
if, if-else and switch
Looping
while, do-while and for
28. What is implicit conversion?
28. What is automatic conversion? ®
Whenever data types are mixed in an expression, C++ performs the
conversions automatically. This process is known as implicit or automatic
conversion.
Consider an expression with mixed data types like m=5+2.75 is a
valid statement.
29. List out some basic data types in C++
Name Description Size* Range*
char Character or small integer. 1bytesigned: -128 to 127
unsigned: 0 to 255
short int
(short)Short Integer. 2bytes
signed: -32768 to 32767
unsigned: 0 to 65535
int Integer. 4bytes
signed: -2147483648 to
2147483647
unsigned: 0 to
4294967295
long int
(long)Long integer. 4bytes
signed: -2147483648 to
2147483647
unsigned: 0 to
4294967295
bool
Boolean value. It can take
one of two values: true or
false.
1byte true or false
float Floating point number. 4bytes+/- 3.4e +/- 38 (~7
digits)
doubleDouble precision floating
point number.8bytes
+/- 1.7e +/- 308 (~15
digits)
long
double
Long double precision
floating point number.8bytes
+/- 1.7e +/- 308 (~15
digits)
wchar_t Wide character.2 or 4
bytes1 wide character
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 13/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 10
30. Define widening conversion
Converting from smaller data type to wider data type is called
widening conversion.
Conversion of a char or short int to int is called integer widening
conversion.
31. Explain water fall model of type conversion☺
Converting from smaller data type to wider data type is called
widening conversion. Widening conversion is also called as water fall
model of type conversion. The water fall model is shown in the below
figure.
33. Explain function prototyping ®
Function prototyping is a declaration statement in the calling
program. The general form is as follows:
Example 1: float volume(int x, float y, float z);
Example 1: float area(float, float );
Short char
int
unsigned int
long int
unsigned long int
float
double
long double
Return-type function-name (argument-list);
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 14/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 11
33. What is call byValue? ®
If a function called with actual value is called call by value.
Ex. int swap (int a, int b)
34. What is call by reference? ☺
If a function called with reference variables is called call by
reference.
void swap (int &a, int &b)
{ int t =a;
a=b;
b=t;
}
swap (&x, &y);
Because it works on original data. x and y value gets change permanently.
35. What is return by reference?
A function returns a reference is known as return by reference
int & max(int &a, int &b)
{ if (a>b)
return a;
else
return b;
}
int * ptr = max(&x, &y)
this function may return address of x or y to ptr.
36. What is function overloading?☺
Family of functions with one function name but with different
argument lists. Depending on the arguments correct function will be
invoked. This process is known as function overloading. This is also known
as function polymorphism (compile time polymorphism).EX: //declarations
add(int, int) //prototype1
add(float,float) //prototype2
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 15/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 12
add(int, float) //prototype3
//function call
cout<<add(10, 7.5); //uses prtotype3
cout<<add(2.5, 7.5); //uses prtotype2
cout<<add(10,20); //uses prtotype1
40. What is inline function?☺
An inline function is a function that is expanded in line when it is
invoked. That is, The compiler replaces the function call with the
corresponding function code.
The inline function is defined as follows:
Syntax:
Inline fun_header
{
Function body
}
Example:
inline float cube(float a)
{return(a*a*a);)
37. Explain virtual function ☺
Same function name in both the base and derived classes, the
function in the base class is declared as virtual, C++ determines which
function to use at run time based on the type of object pointed to by the base pointer, rather then the type of the pointer. Thus by making the base
pointer to point to different objects, we can execute different versions of
virtual function
virtual void show() { cout<< “\n show base”;}
38. Explain pure virtual function ®
if zero is assigned to a virtual function , then the virtual function is
called as pure virtual function.
Example:
Class A
{
virtual void show()=0;
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 16/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 13
39. What is friend function?☺
The non member function is defined elsewhere in the program like a
normal C++ function. The function definition doest use either the key word
friend or the scope operator ::. The functions that are declared with the
keyword friend are known as friend function.
Ex:
class A
{ Int a[20];
Public:
getdata();
{for (int i=0;i<20;i++)
cin>>a[i];}
showdata();
{for (int i=0;i<20;i++)
cout <<a[i];}
friend sum(int *s);
};
//a non member function of class A
sum( int *s)
{ int a;
for (int i=0;i<20;i++)
a=a+s[i];
return a;
}
41. What is the advantage of using inline function? ®
An inline keyword before a function suggests the compiler to insert
the complete body of the function wherever that function is invoked.
Inline function is typically used to eliminate the inherent cost
involved in calling a function. It is typically used or functions that need
quick execution. Some times compiler may ignore inline expansion.
42. What is default argument? ®
An argument value that is specified in the function declaration is
used for corresponding omitted argument while calling the function.
Ex. float intamout (float p, int t, float r=0.15)
r=0.15 is the default argument.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 17/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 14
43. What is constant argument? ®
If function arguments are declared as const. they the arguments are
called comstant argument. The function arguments should not modified in
some cases like interest rate.
float intamout (float p, int t, const float r=0.15)
This is important only when we pass arguments by reference or
pointer.
44. State the properties of static function? ®
A member function that is declared static has the following
properties:
• A static function can have access to only other static members
(variables and functions) declared in the same class.• A static member function can be called using the class name
(instead of its objects) as follows:
Calss_name :: function_name;
45. Explain array of objects.☺
Set of objects of same class with the same name and stored in
continuous memory locations
Array of objects are collection of objects of same class that are
referred by a common name.
Ex; class stack
{ Int top, a[20];
Public:
Push();
Pop();
}
Main()
{ Stack s[5];
---
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 18/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 15
46. State the properties of static member functions
Static member functions can also be defined in the private region of
a class.
Private Static member functions can access only Static data
member and can invoke Static member functions .
47. What is abstract data type?☺
An abstraction that describes a set of objects in terms of an
encapsulated or hidden data and operations on that data is called abstract
data type.
48. What is abstract data type?
Abstract collection of data elements and their accessing functions.
Classes use the concept of abstraction and are defined as a list of attributes
and functions to operate on these attributes. They encapsulate all the
essential properties of the objects. Since the classes use the concept of data
abstraction, they are known as abstract data types.
Ex: class stack
{
Int top, a[20];
Public:
Push();
Pop();
}
49. What are the different types of access specifiers?☺
Class members can have the following access specifiers
Private is the default access and private members are accessible only from
the member functions of the same class and/or from their friend class.
Protected members are accessible from member function of the same class
and/or friend classes, and also from members of their immediate derived
class
Public members are accessible from anywhere the class is visible.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 19/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 16
50. What is data abstraction?
Data abstraction refers to the act of representing essential features
without including the background details or explanations.
51. Explain encapsulation ®
The wrapping up of data and functions into a single unit (called
class) is known as encapsulation.
The mechanism by which the data and functions are bound together
with in an object definition is called encapsulation.
52. What is a class? ☺
A class is a user defined data type. It is a blue print, which defines
the variable and methods common to all objects of a certain kind.
53. What is a class?
A group of objects that share common properties and relationships
is called class. In C++, A class is a new data type that contains member
variables and member functions that operate on the variables. A class is
defined with a keyword class.
54. What is an abstract class? ®
A class that serves only as abase class from which classes are
derived is called abstract class. No objects are created for abstract class.
A class contains a pure virtual functions is an abstract class.
55. What is a container class? ®
A class that contains objects of other classes is called container
class
56. What is an object?☺
A variable whose type is a class is called an object.
An instance of a class is known as an object.
objects are Run time entities in object oriented programming
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 20/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 17
57. What is an instance?
An instance is an object of a particular class. The term instance and
objects are interchangeable. An object has state, behavior and identity,
State defines the attribute (data member) of an object.
Behavior defines method or function used to modify the state of an
object.
Identity is name of an object.
58. What is Call by reference? ☺
A function call mechanism that passes arguments to a function by
passing the address of the arguments.
59. What is Call by value? ☺
A function call mechanism that passes arguments to a function by
passing a copy of the values of the arguments.
60. Explain constructor with example☺
A constructor is a special function whose task is to initialize the
objects of its class. It is special because its name is the same as the class.
Class stack
{
int top;
Public:stack()
{top =0;}
- - -
}
61. Explain destructor with example☺
Destructor is used to destroy the objects that have been created by a
constructor. Like a constructor, the destructor is a member function whose
name is same as the class name but it is preceded by tilde.
~stack(){}
62. What are the main function return types? ®
void and integer
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 21/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 18
63. How constructors differ from normal functions? ®
A constructor is a member function of a class that is used to create
objects or initialize objects of that class. It has the same name as the class
itself, has no return type and is invoked while creating the objects.
A method is an ordinary function of a class. it has its own name, a
return type and is invoked explicitly using the dot operator.
64. List out the properties of constructors
1. Constructors should be declared in public section.
2. They are invoked automatically when objects are created
3. They do not have return type.
4. They must use name of the class.
65. What are the difference between default and parameterized
constructors? ®
The constructors which does not take arguments explicitly is called
default constructor.
Constructors with arguments are called parameterized constructors.
66. What are all the operators that cannot be overloaded?☺
Direct member access operator .
De-reference pointer to class member operator .*
Scope resolution operator ::
Conational operator ?:
Size of operator Sizeof
67. Explain type conversion ®
Converting data from one type to another type is called type
conversion. Three types of data type conversions are
A. Conversion from built-in type to class type.B. Conversion from class type to built-in type.
C. Conversion from one class type to another class type.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 22/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 19
68. What is the use of virtual base class? ®
The duplication of inherited members due to multi paths can be
avoided by making the common base class (ancestor class).
69. What is the use of public access mode?
Public accessible members can be accessed from outside the class.
70. What is the default access mode in a class? ®
Private is the default access mode in a class
71. What are the functions supported by file stream class for
performing I/O operations? ®
Put() get() open() close() read() write()
72. What are the file ptr functions available in C++ ®
what are the functions for manipulation of file pointers?
seekg() -> indicates the file pointer position moved by
the get pointer
seekp() -> indicates the file pointer position moved by
the put pointer
tellg() -> tells the file position moved by get pointer
tellp() -> tells the file position moved by put pointer
73. What are the file stream classes available in C++?
fstream, ifstream, ofstream, fstreambase and filebuf
74. What is an I/O stream? ®
A stream is a sequence of bytes. The source stream that
supplies data to the program is called input stream and the destination
stream that receives data from the program is called output stream.
75. What is dynamic initialization? ®
C++ permits initialization of variables at run time. This is
referred as dynamic initialization.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 23/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 20
OBJECT ORIENTED
PROGRAMMING IN C++
QUESTIONS
WITH
DESCRIPTIVE ANSWERS
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 24/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 21
1. Explain the basic concepts of OOP
The basic concepts of OOP are Class, object, Data abstraction,
Encapsulation, Inheritance, Polymorphism, Dynamic binding and message
passing.
A. Class
A group of objects that share common properties and relationships
is called class. A class is a new data type that contains member variables
and member functions that operate on the variables. A class is defined with
a keyword class.
A class is a user defined data type. It is a blue print for objects,
which defines the variable and methods common to all objects of a certain
kind.
Example: person class:
class person //New data type class person
{
char name[30]; //Data member
int age; //Data member
public: //Public access
void getdata(void); //Function declaration
void display(void);
};
B. Objects
The class variables are known as objects. An instance of a class is
known as an object. Objects are Run time entities in object oriented
programming
Example: person object p:
main()
{
person p; //Person object
p.getdata();
p.display();}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 25/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 22
C. Data abstraction
The act of representing essential features without including the
background details or explanations is known as data abstraction. Class uses
the concept of abstraction. Since class uses the concept of data abstraction,
they are known as Abstract Data Types.
D. Encapsulation
The wrapping up of the data and functions into a single unit (called
class) is known as encapsulation. Data encapsulation is the most striking
feature of a class. The data is not accessible to the outside world and only
those functions which are wrapped in the class can access it. these functions
provide the interface between the object’s data and the program. This
insulation of the data from direct access by the program is called data
hiding.
E. Inheritance
The mechanism of deriving a new class from existing class is called
inheritance. There are different kinds of inheritance namely single,
multiple, multilevel inheritance, Hierarchical and Hybrid
Ex.: Single Inheritance
A derived class with only one base class is called Single Inheritance
Class Child : public Parent
F. Polymorphism
The ability to take more than one form is called polymorphism.
That is, more operations in same name. Polymorphism means one name
with multiple forms. Run time polymorphism and compile time
polymorphism are the two kinds of polymorphism.
Parent
Child
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 26/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 23
G. Dynamic binding
The addresses of the functions are determined at run time rather than compile time (late binding). Linking of a procedure to execution code
is done at run time is called dynamic binding.
H. Message Communication
Objects communicate with one another by sending and receiving
information. A message for an object is a request for execution of
procedure. Message passing involves specifying the name of the object, the
name of the function (message) and information to be sent. Example is
given below :
Polymorphism
Compile timePolymorphism
Run timePolymorphism
Function
overloading
Operator
overloading
Virtual
functions
employee . salary (name);
object message Information
ob ect
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 27/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 24
2. What are the Principal Advantages of OOP?☺
2. What are the merits of OOP Methodology?
2. What are the Benefits of OOP/OOM?
OOP offers several befits to both the program designer and the user.The principal advantages are:
• Through inheritance, we can eliminate redundant code
and extend the use of existing classes
• We can build programs from the standard working modules
(Reusability of code by Inheritance).
• The principle of Data hiding (encapsulation) helps programmer
to build secure program.
• Program developed by modules through classes
• It is possible to have multiple instances of class – objects to co-
exist without any interface.
• It is possible to map objects in the problem domain to those
objects in the program.
• It is easy to Portion the work based on objects
• Data centered and Bottom-Up design approach.
• Object oriented systems can be easily upgraded from small to
large systems.
• Message passing technique for communication between objects.
• Software complexity can be easily managed.
3. Explain object oriented programming paradigm ®
3. Explain object oriented programming approach
3. Explain object oriented programming Methodology
Object oriented programming approach provides solution to some
of flaws encountered in procedural approach. OOP treats data as a critical
element in the program development and does not allow it to flow freely
around the system. It ties data more closely to the functions that operates on
it and protects it from accidental modification from outside functions.
OOP allows decomposition of a problem into a number of entities
called objects and then builds data and functions around these entities. The
organization of data and functions in OOP is shown in the figure given
below:
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 28/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 25
The data of an object can be accessed only by the functions
associated with that object. However, functions of one object can access thefunction of other objects.
Some of the striking features of OOP are:
• Emphasis is on data rather than procedure.
• Programs are divided into elements called objects.
• Data structures are designed such that they characterize the
objects (Abstraction).
• Functions and data tied together into a single unit called
encapsulation.
• Data is hidden (private data) and cannot be accessed by
external functions.
• Objects may communicate with each other through functions.
• New data and functions can be easily added whenever
necessary (inheritance).
• Bottom-up approach in program design.
OOP is the most recent concept among programming paradigms.
Class and objects are the building blocks in OOP. An object is considered
to be a partitioned area of computer memory that stores data and set of
operations that can access that data.
Data
Functions
Object A
Data
Functions
Object B
Data
Functions
Object C
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 29/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 26
4. Write the difference between C & C++. ☺
C:
C is a Procedural Programming. It was developed at AT & T Bell
laboratories in 1972 by Dennies Ritchie From the language B.
C++:
C++ is an Object Oriented Programming. It was developed at AT
& T Bell laboratories in the early 1980s by Bjarne Stroustrup.from the
languages C and Simula67.
C C++
C is a subset of C++ C++ is super set
Procedure Oriented
Programming (POP)
Object Oriented Programming (OOP)
Top down approach Bottom up approach
Structured Programming Modular Programming
Importance in given for program Importance is given for data
Does not support objects Supports objects
C provides
Action/Structure/function
oriented programming
C++ provides Object Oriented
Programming with features like
Abstraction, Encapsulation,
Inheritance and polymorphism
C is not a strong type checkinglanguage
C++ is a strong type checkinglanguage
C does not supports error
handling
C++ supports sophisticated error
handling using the Exception Handling
Function overloading and
function overriding are not
availed in C
Function overloading and function
overriding can be done in C++
C does not supports Templates C++ supports Templates
Scanf & printf functions for
getting and showing values
Cin and cout stream operators for
getting and showing values
Input and out put format like
%d, %f, %c… are required in
I/O process
No format is required in c++ in I/O
process
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 30/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 27
5. Explain Data Types in C++☺
Data Types are the kind of data that variables hold in a
programming language. The ability to divide data into different types in
C++ enables one to work easily with complex objects.
C++ Basic Data Types and their size in bytes
Type Bytes
char, unsigned char and signed char 1int, unsigned int, signed int and short int 2
long int, unsigned long int and signed long int 4
float 4
double 8
long double 10
char and signed char value varies from -128 to 127
unsigned char value varies from 0 to 255
int and signed int value varies from -32768 to 32767
unsigned int value varies from 0 to 65535
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 31/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 28
6. Explain Storage Class / Storage Specifiers
Storage Class is another qualifier (like long or unsigned) that can be
added to a variable declaration. The four storage specifiers are auto, static,
extern and register. static and register variables are automatically
initialized to zero when they are declared. Auto variables are not initialized
with appropriate values based on their data type. These variables get
undefined values known as garbage.
Storage Meaning Example
auto Defines local variable known to
the block in which they are
defined. By default the local
variables are auto hence rarely
used.
void main()
{ autofloat ratio;
int kount;
}
static Global scope but one time
initialization
void fun()
{
static int x;
x++;
}
extern Global variable known to all
functions in the current program. These variables are
defined in another program.
extern int filemode;
extern void factorial();
register The modifier register instructs
the compiler to store the
variable in the CPU register to
optimize access.
void fun()
{register int I;}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 32/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 29
7. What are the difference between break and continue?
Break statement tells to compiler that to exit from a loop or switch
case. If loops are nested, the break would only exit from the loop
containing it. That is, break will exit only a single loop. Break statement at
the end of the switch case causes an exit from the switch statement.
The continue statement tells to compiler that to skip the remaining
statements and continue with next iteration.
Break Continue
Break will exit only from a single
loop
Continue will skip remaining lines
for one iteration.
Used in loop and branch control Used only in loop control
Loop is terminated Loop is continued
while(test-con)
{---------
if(cond)
break;--------
}
while(test-con)
{---------
if(cond)
continue;
--------
}
for(ini;test;inc){
---------
if(cond)continue;
--------
}
switch(expresion)
{case 1:
block1
break;case 2:
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 33/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 30
8. Explain Control Structures in C++ ®
Statements in a program need not necessarily be executed in a
sequential order. Some segments in a program are executed based on a
condition. In such situations the flow of control jumps from one part of the
program to another. Program statements that cause such jumps are called as
control statements or control structures.
Control structures
Sequence Selection (Decision making & Branching)
Control structure
SequenceSelection Loop structure
if ,if else switch do-while while, for
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 34/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 31
Loop
IF (Branch)
if (expression is true){
action 1;
}
action 2;
action 3;
If(age>60){
Int_rate=Int_rate+0.5;
}
Interest=P*y*Int_rate;
Cout<<Interest;
If condition is true then it will execute action 1 otherwise it would not
execute action 1.
IF – ELSE (Two – way branch)
if (expression is true)
{
action 1;
}
else
{
action 2;
}
action 3;
If(mark>=50)
{
Result=”Pass”;
}
else
{
Result=”Fail”;
}
Cout<<Result;
If condition is true then it will execute action 1 otherwise action 2 will be
executed.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 35/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 32
SWITCH (Multiple branches)
switch (expression )
{
case 1:
{
action 1;
}
case 2:
{
action 2;
}
case 3:
{action 3;
}
default:
{
action 4;
}
}
action 5;
Switch(option)
{
case 1:
{
Push();
}
case 2:
{
Pop();
}
case 3:
{Display();
}
default:
{
Cout<<”No”;
}
}
Cout<<”Switch over”;
This is a multiple-branch statement. Based on expression control is
transferred to one of the many possible points.
DO – WHILE (exit controlled loop)
do
{
action 1;
}
while(condition is
true);
action 2;
Int n=100,sum=0, i=0;
do
{ sum=sum + i; i++
}
while(i<n);
Cout<<sum;
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 36/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 33
The do-while is an exit-controlled loop. Based on the true condition, the
control is transferred to back to loop.
WHILE (entry controlled loop)
while(condition is
true)
{
action 1;
}
action 2;
Int n=100,sum=0, i=0;
while(i<n)
{ sum=sum + i; i++
}
Cout<<sum;
Similar to do-while loop, but it is an entry controlled one.
FOR(entry controlled loop)
for (initial condition;
test; increment)
{
action 1;
}
action 2;
Int n=100,sum=0
for (i=0; i<n; i++)
{
sum=sum + i;
}
Cout<<sum;
The for loop is an entry-controlled loop and is used when an action is to be
repeated for a predetermined number of times.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 37/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 34
9. Explain Classes and objects with example ☺
Class
The most important feature of C++ is the “Class”. Its significance is
highlighted by the fact that Bjarne Stroustrup initially gave the name ‘Cwith Classes ‘. A class is a new way of creating and implementing a user
defined data type.
A group of objects that share common properties and relationships
is called class. In C++, A class is a new data type that contains member
variables and member functions that operate on the variables. A class is
defined with a keyword class.
A class is a user defined data type. It is a blue print for objects,
which defines the variable and methods common to all objects of a certain
kind.
Characteristics of a class:
• The keyword class specifies user defined data type class name
• The body of a class is enclosed within braces and is
terminated by a semicolon
• The class body contains the declaration of variables and
functions
• The class body has three access specifiers ( visibility labels)
viz., private , public and protected
• Specifying private visibility label is optional. By default the
members will be treated as private if a visibility label is not
mentioned
• The members that have been declared as private, can be
accessed only from within the class
• The members that have been declared as protected can be
accessed from within the class, and the members of the
inherited classes.
• The members that have been declared as public can beaccessed from outside the class also
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 38/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 35
Structure of a class
Class Name
Data Declaration
Function
Declaration
Function
Definition
#include<iostream.h>
class item //class declaration
{
int number; //private data member
float cost; //private data member
public:
void getdata (void);//prototype declaration
void putdata(void); //function defined here
};
void item :: getdata (void) //function definition
{
cout<<”\nEnter an Item Number\n”
cin>>number;
cout<<”\nEnter the Item Cost\n”
cin>>cost;
}
void item :: putdata (void) //function definition{
cout<<”number : ”<< number<<”\n”;
cout<<”cost : “<<cost<<”\n”;
}
class class_name
{ private:
variable declarations;
function declarations;
public:
variable declarations;
function declarations;
};
function definitions
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 39/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 36
main()
{
item x; //create object
cout<<”\n Object x”;x.getdata(); //call member function
x.putdata();
}
Output:
In this example, item is a new data type created using the keyword
‘class’. the item class consists of private data members and public
functions.
Objects
In C++, the class variables are known as objects. An instance of a
class is known as an object. Objects are Run time entities in object oriented
programming
main()
{
item x; //create object
x.getdata(); //call member function
x.putdata(); //call member function
}
Here we created an object ‘x’ of type item class. The member
functions are called using (.) Dot operator.
Consider the line given below:
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 40/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 37
Array of objects
item x[100];
The above line will create 100 arrays of objects of type item.
The below lines will collects data for 100 objects.
for(int i=0;i<100;i++)
x[i].getdata();
Similarly, The below lines will display data for 100 objects.
for(int i=0;i<100;i++)
x[i].putdata();
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 41/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 38
10. Explain constructor and destructor with suitable example ☺
Constructor
A constructor is a special function whose task is to initialize the
objects of its class. It is special because its name is the same as the class.
Class stack
Class stack
{ Int top;
Public:
stack(); //constructor
~ stack(); //destructor
push();
pop();
disp();
- - - -
};
Example: Constructor
stack ::stack()
{
top=0;
}
Special characteristics of constructors:
• They should be declared in public section.
• They are invoked automatically when the objects are created.
• They do not have return types. So they cannot return values.
• They cannot be inherited.
• Like other C++ functions, they can have default arguments.
• Constructors cannot be virtual.
• We cannot refer to their addresses.
Types of Constructors
1. Parameterized constructors
The constructors that can take arguments are called parameterized
constructors.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 42/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 39
class integer
{ int m,n;
public:
integer(int x, int y) //parameterized constructor
…..}
2. Default constructors
A constructor that accepts no parameter is called default
constructor. the default constructor for a class A is:
A::A().
3. Multiple constructors
More than one constructor with different arguments is called
multiple constructors.
class integer
{ int m,n;
public:
integer() {m=0; n=0;} // constructor1
integer(int x, int y) // constructor2
{m=a;n=b;}
integer(integer &i) // constructor3
{m=i.m;n=i.n;}
…..
}
4. Default arguments constructors
A constructor with default argument is called default argument
constructor.
class complex
{ float real, imag;
public:
complex(float real, float imag=0);
….
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 43/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 40
}
complex c(5.0)
real variable gets 5.0 and imag variable get 0 (by default)
5. Dynamic initialization of objects
the class objects can be initialized dynamically too. that is, the
initial value of an object may be provided during run time.
stack ::stack()
{
top=0;
}
6. Copy constructor
A constructor can accept a reference to its own class as a parameter.
that is,
Class A
{
….
public:
A(A &);
}
A copy constructor is used to declare and initialize an object from another
object.
7. Dynamic constructors
Allocation of memory to objects at the time of their construction is
known as dynamic construction for objects. The memory is allocated with
the help of the new operator.
Destructor
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 44/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 41
A Destructor is used to destroy the objects that have been created
by a constructor. Like a constructor, the destructor is a member function
whose name is same as the class name but it is preceded by tilde.
Example: Destructor
~stack()
{
delete st;
cout<<”Object deleted”;
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 45/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 42
11. Compare and contrast between constructor and destructor?☺
Constructor and destructor
Constructor Destructor
SimilaritiesConstructors does not have a return
type
Destructor also does not have a
return type
Constructor is a member function to
a class
Destructor is also a member
function to a class
Constructor uses class name as their
names
Destructor also uses class name as
their with ~ .
Differences
Provided to a class to initialize an
object
Cleans up or de-initializes each
object before object is destroyed
It has same name as its class It has same name as its class with
prefixed ~ (tilde)
Constructors can have arguments Destructor has no arguments
Multiple constructors can exists Multiple destructors can not exists
Constructors can be overloaded Destructors can not be overloaded
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 46/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 43
12. What is function overloading?☺
Many functions with same name created to perform different tasks.
Family of functions with one function name but with different
argument lists. Depending on the arguments correct function will be
invoked. This process is known as function overloading. This is also known
as function polymorphism (compile time polymorphism).
#include<iostream.h>
class sample
{
public:
int add(int, int); //prototype1
float add(float,float); //prototype2
add(int, float); //prototype3
};
int sample :: add (int x, int y)
{ return (x+y);}
float sample :: add (float x, float y)
{ return (x+y);}
float sample :: add (int x, float y)
{ return (x+y);}
main(){ sample s;
//function call
cout<<s.add(10, 7.5); //uses prtotype3
cout<<s.add(2.5, 7.5); //uses prtotype2
cout<<s.add(10,20); //uses prtotype1
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 47/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 44
13. Explain Operator overloading with an example☺
C++ permits us to add two variables of user-defined types with the
same syntax that is applied to the basic types. this means that C++ has the
ability to provide the operators with a special meaning for a data type. The
mechanism of giving such a special meanings to an operator is known as
operator overloading.
Operator overloading can be done with the help of a special
function is called operator function. The general form of operator function
is given below:
Where returntype is the type of value retuned by the specified operation
and op is the operator being overloaded. the op is proceeded by he keywordoperator.
Operator op is the function name.
Operator function must be either member functions (non static) or
friend function.
List of operators that cannot be overloaded are:
Direct member access operator .
De-reference pointer to class member operator .*
Scope resolution operator ::
Conational operator ?:Size of operator Sizeof
List of friend function cannot be used are:
Assignment operator =
Function call operator ()
Subscripting operator []
Class member access operator ->
.
Operator functions are declared as follows:
vector operator + (vector); // vector addition
vector operator - (); // unary minus
friend vector operator + (vector, vector); // vector addition
friend vector operator - (vector); // unary minus
returntype classname :: operator op (arg-list){
Function body //task defined
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 48/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 45
int operator == (vector) //comparison
friend int operator == (vector, vector) //comparison
Rules for overloading operators:
Although it looks simple to redefine the operators, there are somerestrictions and limitations in operator overloading. Some of them are listed
below:
1. Only existing operators can be overloaded. New operators cannot be
created.
2. The overloaded operator must have at least one operand that is of
user defined type.
3. We cannot change the basic meaning of the operator.
4. Overloaded operators must follow the rules of the original
operators.
5. There are some operators that cannot be overloaded.6. We cannot use friend functions to overload certain operators.
7. Unary operators are overloaded by means of a member function
with out argument.
8. Binary operators are overloaded through a member function with
one argument and a fiend function with two arguments.
9. The left-hand operand must be an object for binary operator
overloading.
10. Binary arithmetic operators such as + - * and / must return a value.
Example1: Program for unary operator overloading
The unary operator – is overloaded with single operand. The unary
operator – is used to change the negative value of the operand.
Overloading unary operators
#include<iostream.h>
class point
{
int x;
int y;
public:
void getdata(int a , int b);
void display(void);
void operator - (); //// unary minus
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 49/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 46
};
void point :: getdata(int a, int b)
{
x=a; y=b;
}void point :: display(void)
{
cout<<”Point (x,y) = ”<<x<<”,”<< y;
}
void point :: operator – ()
{
x = - x;
y = - y;
}
main()
{
point p;
p.getdata(10, -20);
p.display();
-p;
p.display();
}
Output:
Point (x,y) = 10, -20
Point (x,y) = -10, 20
Example2: Program for Binary operator overloading
The binary operator + and * are overloaded with two operands. The
binary operator + is overloaded for complex numbers addition and the
binary operator * is overloaded for complex numbers multiplication.
Overloading binay operators for complex numbers
#include<iostream.h>
class complex
{
float x; //real part
float y; //imaginay part
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 50/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 47
public:
complex(){ } //constructor1
complex(float real, float imag) //constructor2
{
x=real;y=imag;
}
complex operator+(complex);
complex operator*(complex);
void display(void);
};
complex complex :: operator+(complex c)
{
complex temp; //temprary
temp.x=x+c.x; //real part addition
temp.y=y+c.y; //imaginary part addition
return temp;
}
complex complex :: operator*(complex c)
{
complex temp; //temprary
temp.x=(x*c.x)-(y*c.y); //real part multiplication
temp.y=(x*c.y)+(y*c.x); //imaginary part multiplication
return temp;
}
void complex :: display(void)
{
cout<<x<<" +i " <<y<<"\n" ;
}
main()
{
complex c1,c2,c3,c4,c5; //invoke costructor 1
c1 = complex(2.5, 3.5); //invoke costructor 2
c2 = complex(1.6, 2.7); //invoke costructor 2
c3=c1+c2; //invoke operator+()
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 51/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 48
c4=c1*c2; //invoke operator*()
cout<<"C1= " ;
c1.display();
cout<<"C2= " ;
c2.display();cout<<"Addition: C3= " ;
c3.display();
cout<<"Multiplication: C4= " ;
c4.display();
}
Output
C1 = 2.5 +i 3.5
C2 = 1.6 +i 2.7
Addition: C3= 4.1 +i 6.2
Multiplication: C4=-5.45+i 12.35
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 52/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 49
14. Explain type conversion with example ®
Converting data from one type to another type is called type
conversion. Three types of data type conversions are
A. Conversion from built-in type to class type.
B. Conversion from class type to built-in type.
C. Conversion from one class type to another class type.
Conversion takes place inConversion
required Source class Destination
class
Basic ->
Class
Not
applicable
Constructor
Class ->Basic
Castingoperator
Notapplicable
Class ->
Class
Casting
operator
Constructor
A. Basic to Class Type
The conversion from basic type to class type is easy to accomplish.
We can use constructor to build a string type object from a char* type
variable. This is an example for defacto type conversion.
Class String constructor:
The string constructor builds a string type object from char* type
variable a. The variables length and p are data members of the class string.
This constructor is used for conversation from basic data type char * to
string type.
string :: string(char *a)
{ length = strlen(a);
P = new char[length + 1];
strcpy(P,a);
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 53/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 50
Example:
The last statements are used to converts data from char * type to string
type.
B. Class to Basic Type
C++ allows us to define a overload a casting operator that could be
used to convert a class type to a basic type. The general form of an
overloaded casting operator function, usually referred to as a conversionfunction, is:
Example: Converstion from class type string to basic type char * as
follows:
string s3=”Dr Pauls Engineering College”
char * name3=char* (s3); or
char * name3=s3;
C. One Class to Another Class
We have seen data conversion technique from a basic to class type
and a class to basic type. But there are situations where we would like toconvert one class type data to another class type.
Example:
operator typename()
{ ………
………(Function staetments )
}
objX = objY; //ob ects of different t es
string s1,s2;
char * name1 = “Dr Pauls”;
char * name2 = “Engineering College”;
s1=string(name1); //calls constructor s2=name2; //implicitly calls constructor
string : : operator char*()
{return(p);
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 54/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 51
Where objX is an object of class X and objY is an object of class Y. The
class Y type data is converted to the class X type data and the converted
value is assigned to the objX. Since the conversion takes place from class
Y to class X, Class Y is Known as source Class and Class X is known as
the destination Class.Such conversions between objects of different classes can be carried
out by either a constructor or a conversion function.
//polar to cartesian.cpp
#include<iostream.h>
#include<math.h>
#include<conio.h>
class polar
{ public:
float r;
float a;
polar(float i=0, float j=0) //constructor
{ r=i;
a=j;
}
};
class cartesian
{
public:
float x;
float y;
cartesian(float m=0, float n=0) //constructor
{ x=m;
y=n;
}
cartesian(polar p) //type conversion
{ x=p.r*cos(p.a);
y=p.r*sin(p.a);
}
void show()
{
cout<<"("<<x<<" , "<< y <<")\n";
}
};
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 55/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 52
void main()
{
polar ppoint(4.25,0.785); //angle PI/4=0.785
cartesian cpoint;
cpoint=ppoint; //Polar object is assignedcpoint.show();
getch();
}
Output
( 3.0005, 3.0004 )
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 56/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 53
15. Explain inheritance / Extending Classes ☺
The mechanism of deriving a new class from existing class is called
inheritance. The existing class is known as base class, super class or parent
class; the new class is known as sub class, derived class or child class.
Defining derived classes
A derived class is defined by specifying its relationship with the base class
in addition to its own details. The general form of defining a derived class
is:
class derived_clas_name : visibility_mode base_class_name
{
……//members of derived classes
}
Types of Inheritance
There are different kinds of inheritance namely single, multiple, multilevel
inheritance, Hierarchical and Hybrid
Single Inheritance means a class derived from only one of existing class.
(A derived class with only one base class is called Single Inheritance)
Class Child : public Parent
{ . . .};
Multilevel Inheritance means a class derived from only one of existing
class.
Parent
Derived1
Derived2
Parent
Child
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 57/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 54
Class Derived1 : public Parent
{ . . .};
Class Derived2 : public Derived1
{ . . .};
Multiplelevel Inheritance means a class derived from more than one of existing classes.
Class Derived1 : public Parent1, public Parent2
{ . . .};
Hierarchical Inheritance means a class my be inherited by more than one
classes.
Class Derived1 : public Parent1
{ . . .};
Class Derived2 : public Parent1
{ . . .};
Class Derived3 : public Parent1
{ . . .};
Hybrid Inheritance means combinations of the above inheritance.
Class Parent1 : public GrandParent1
{ . . .};
Class Parent2 : public GrandParent1
Parent1
GrandParent1
Derived3
Parent2
Derived1
Parent1
Derived2 Derived3
Parent1 Parent2
Derived1
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 58/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 55
{ . . .};
Class Derived3 : public Parent1, public Parent12
{ . . .};
Multi path inheritance / Virtual base classes
The child has two direct base classes parent1 and parent2 which
themselves have a common base class Grandparent. The child inherits
the traits of Grandparent via two separate paths. It can also inherit directly
as shown by a broken line. The Grandparent is sometimes referred to as
indirect base class.
Inheritance by the child as shown in the above figure might pose
some problems. All the public and protected members of Grandparent are
inherited into child twice, first via parent1 and again via parent2. This
means child would have duplicate sets of the members inherited from
grandparent. This introduces ambiguity and should be avoided.
The duplication of inherited members due to this multiple paths
can be avoided by making the common base class (ancestor class ) as
virtual base class while declaring the direct or intermediate base classes as
shown below:
Class A // Grandparent
{……};
Class B1: virtual public A //parent1
{……};
Class B2: public virtual A //parent2
{……};
Class C: public B1, public B2 //child{
……//only one copy of a will be inherited
};
Derived1
Grand Parent
Child
Derived2
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 59/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 56
Access mode in inheritance
With in
class
With
derived
class
Main /
other class
Private Yes No No
Protected Yes Yes No
Public Yes Yes Yes
Private and public inheritance
Data public
derived
class
protected
derived
class
Private
derived
class
Private not
accessible
not
accessible
not
accessible
Protected protected protected Private
Public public protected Private
Sample program for hybrid inheritance
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 60/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 57
16. Explain pointers in C++
Pointers
Pointers data type is one of the strengths of the C++ language. A
pointer is a variable which holds the memory address of another variable.
The advantages of pointers
• Pointer allows passing variables, arrays, functions, strings and structures
as function arguments.
• Pointer facilitates functions to modify calling arguments
• Pointer supports dynamic allocation and de allocation of memory
segments.
• It allows to establish links between data elements such as linked lists,
stacks, queues, trees and graphs.
Initialization and declaration of pointers
int *ip; //integer pointer declaration
ip = & x; //address of x assigned to ip
*ip =50 //50 assigned to x through indirection
Constant pointer
char * const ptr1 = “GOOD”; // constant pointer
we cannot modify the address of ptr1
Pointer to a constant
int const * ptr =&m; // Pointer to a constant
ptr2 can point to any variable, but the contents of what it points to cannot
be changed.
Pointers to objects
#include<iostream.h>
Class Base
{ public:void display() { cout<< “\n display base”;}
virtual void show() { cout<< “\n show base”;}
};
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 61/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 58
main()
{
Base B; Base *ptr; //declarations
cout<< “\n Ptr points to base\n”;
ptr=&B; ptr->display() //calls Base version
ptr->show() //calls Base version
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 62/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 59
17. Explain virtual function
Same function name in both the base and derived classes,
the function in the base class is declared as virtual, C++ determines which
function to use at run time based on the type of object pointed to by the
base pointer, rather then the type of the pointer. Thus by making the base
pointer to point to different objects, we can execute different versions of
virtual function
It is used for late binding. That is, for run time polymorphism.
Example
#include<iostream.h>
Class Base
{ public:
void display() { cout<< “\n display base”;}
virtual void show() { cout<< “\n show base”;}
};
Class Derived
{ public:
void display() { cout<< “\n display derived”;}
void show() { cout<< “”\n show derived;
};
main()
{Base B; Derived D; Base *ptr; //declarations
cout<< “\n Ptr points to base\n”;
ptr=&B;
ptr->display() //calls Base version
ptr->show() //calls Base version
cout<< “\n Ptr points to derived\n”;
ptr=&D;
ptr->display() //calls Base version
ptr->show() //calls Derived version}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 63/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 60
Output
Ptr points to base
display base
show base
Ptr points to derived display base
show derived
Ptr is always point to base object. but run time polymorphism is achieved
by adding a key word ‘virtual’ to show() function in base class.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 64/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 61
18. Explain virtual functions with a program (16)
Run time polymorphism is achieved by the concept of
virtual functions. Run time polymorphism refers to the property by which
Objects belonging to different classes are able to respond to the same
function in different forms. An essential requirement of polymorphism is
the ability to refer to objects without any regard to their class. This
necessitates the use of a single pointer variable to refer to the objects of
different classes.
Here we use the pointer to base class to refer to all the derived
objects. But we just discovered that a base pointer, even when it is made to
contain the address of a derived class, always executes the function in the
base class. The compiler simply ignores the contents of the pointer and
chooses the member function that matches the type of the pointer. How do
we then achieve polymorphism? It is achieved using what is known as
virtual function.
Same function name in both the base and derived classes, the
function in the base class is declared as virtual, C++ determines which
function to use at run time based on the type of object pointed to by the
base pointer, rather then the type of the pointer. Thus by making the base
pointer to point to different objects, we can execute different versions of
virtual function
It is used for late binding. That is, for run time polymorphism. run
time polymorphism is achieved only when a virtual function is accessed
through a pointer to the base class.
Example:
Consider a book shop which sells both books and video-tapes. We can
create a class known as media that stores the title and price of a publication.
We can then create two derived classes, one for storing the number of
pages in a book and another for storing the playing time of a tape. The
following figure shows class hierarchy for the book shop
mediavirtual void display()
book tape
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 65/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 62
//run time polymorphism-virtual functions
#include<iostream.h>
#include<string.h>
class media
{ protected:char title[50];
float price;
public:
media(char *s, float a)
{ strcpy(title,s);
price=a;
}
virtual void display() { } //empty virtual function
};
class book : public media
{ int pages;
public:
book (char * s, float a, int p) :media(s,a)
{ pages = p;
}
void display()
{ cout << "\n Title: " << title;
cout << "\n Pages: " << pages;
cout << "\n Price: " << price;
}
};
class tape : public media
{ float time;
public:
tape (char * s, float a, float t) :media(s,a)
{ time = t;
}
void display()
{ cout << "\n Title: " << title;
cout << "\n Play time:" << time ;
cout << "\n Price: " << price;
}
};
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 66/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 63
main()
{ char *title;
float price, time;
int pages;
cout << "\n Enter Book Details\n";cout << "\n Title: " ;cin >> title;
cout << "\n Pages: " ;cin >> pages ;
cout << "\n Price: " ;cin >> price;
book b1(title, price,pages);
cout << "\n Enter Tape Details\n";
cout << "\n Title : "; cin >> title;
cout << "\n Play time: "; cin >> time ;
cout << "\n Price : "; cin >> price;
tape t1(title, price,time);
media* m1;
media *m2;
m1=&b1;
m2=&t1;
cout <<"\n\nMEDIA DETAILS";
cout <<"\n...........BOOK..........";
m1 -> display(); //display book
cout <<"\n...........TAPE..........";
m2 -> display(); //display tape
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 67/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 64
19. Explain polymorphism
The ability to take more than one form is called polymorphism.
That is, more operations in same name. Polymorphism means one name
with multiple forms. The concept of polymorphism is implemented using
the overloaded functions and operators. Polymorphism can be divided into
Run time polymorphism and compile time polymorphism.
Compile time polymorphism
The overloaded member functions are ‘selected’ for invoking by
matching arguments by number of arguments and its type. This information
is known to the compiler at the compile time and, therefore, compiler is
able to select the appropriate function for a particular call at the compile
time itself. This is called early binding or static binding or static linking.
Also known as compile time polymorphism. Early binding simply means
that an object is bound to its function at compile time.
Run time polymorphism
Consider the base and derived class with same function name and
prototype in both classes.
class A
{ int x;
public:
void show() {…} //show() in base class
};class B : public A
{ int y;
public:
Polymorphism
Function
overloading
Operator
overloading
Virtual
functions
Compile time
Polymorphism
Run time
Polymorphism
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 68/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 65
void show() {…} //show() in derived class
};
Here the same show() function is available in both classes. That is,
function overloading is not possible. Therefore static binding fails. In fact,the compiler does not know which function to chose.
The process of selecting the appropriate member function at run
time is called run time poly morphism. It can be achieved using virtual
functions. It is also called as late binding or dynamic binding
Thus, Run time polymorphism refers to the property by which
Objects belonging to different classes are able to respond to the same
function in different forms. Dynamic binding is the one of the powerful
features of C++. This requires the use of pointers to objects.
NOTE: for 16 mark write function overloading, operator overloading and
virtual functions.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 69/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 66
write data
(to files)
get data
(from key
board)
cin>>
20. Explain file handling
Introduction
File input and output streams
The I/O system of C++ handles file operations which are
very much similar to the console input and out put operations. It uses file
stream (sequence of bits or bytes) as an interface between the programs and
the files. The stream that supplies data to the program is known as input
stream and the one that receives data from the program is known as output
stream.
Stream classes for file operations
put datato screen
cout<<
read data(from files)
Data Files
Program + Data
Screen
Internal memor
Keyboard
Prog-file
interaction
Disk files Pro ram
Read
Data
Write
Data
Data
Input
Data
Output
External memor
ConsoleProgram
interaction
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 70/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 67
Details of stream classes
Class Contents
filebuf Its purpose is to set the file buffers to
read and write.
fstreambase Provides operations common to the file
streams.
ifstream Provides input operations
ofstream Provides output operations
fstream Provides support for simultaneous input
and output operations
//writing and reading objects in a file
#include<fstream.h>
#include<iomanip.h>
class inventory
{
char name[10];
int code;
float cost; public:
void readdata (void);
void writedata(void);
};
ios
streambuf ostreamistream
iostream
fstream ofstreamifstream
fstream base
filebuf
iostream.h
file
fstream.h
file
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 71/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 68
void inventory :: readdata (void)
{
cout<<"Enter name: "; cin>>name;
cout<<"Enter code: "; cin>>code;
cout<<"Enter cost: "; cin>>cost;}
void inventory :: writedata (void)
{
cout<<setiosflags(ios::left) << setw(10) <<name;
cout<<setiosflags(ios::right)<< setw(10) <<code;
cout<<setprecision(2) << setw(10) <<cost;
cout<<endl;
}
main()
{inventory item[3]; //array of 5 objects
fstream myfile; //input and output file
myfile.open("stock.txt", ios::in | ios::out);
cout<<"\nEnter details for inventory\n";
for (int i=0; i<3; i++)
{
item[i].readdata();
myfile.write((char *) & item[i], sizeof(item[i]));
}
myfile.seekg(0); //reset to start position
cout<<"\n File Output\n\n";
for(i=0;i<3;i++)
{
myfile.read((char *) & item[i], sizeof(item[i]));
item[i].writedata();
}
myfile.close();
}
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 72/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 69
File mode parameters
No. Mode:
parameters
Meanings
1 ios :: in Open file for reading only2 ios :: out Open file for writing only
3 ios :: app Append to end-of-file
4 ios :: ate Go to end-of-file on opening
5 ios :: binary Open as binary file
6 ios :: nocreate Open fails if the file does not
exists
7 ios :: noreplace Open fails if the file already
exists
8 ios :: trunc Delete the contents of the file
if it exists
ERROR HANDLING DURING FILE OPERATIONS
We may get Errors when one of the following occurs:
• A file which we are attempting to open for reading does not exist.
• The file name used for a new file may already exist.
• We may attempt an invalid operation such as reading after end-of –file.
• There may not be any space in the disk for storing more data.
• We may use an invalid file name.
• We may attempt to perform an operation when file is not opened for that purpose.
ERROR HANDLING FUNCTIONS
Function Return value and meanings
eof() Returns true (non-zero value) if end-of –file is
encountered while reading; otherwise returns false
(zero).
fail() Returns true when input or output failed.
bad() Returns true when invalid operation or
unrecoverable error has occurred. if it is false, then
it may be possible to recover from error
good() Returns true if no error has occurred
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 73/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 70
21. Explain class and function templates
Single function or class for which a family of similar functions or
class in a generic manner is called templates.
Class template
A single generic class for set of multi class with similar objective is called
class template
Example
Template <class T>
T sum (T *arr, int n)
{
T temp=0;
for( int i=0;i<n;i++)
temp = temp + arr[i]);
return temp;
}
main()
{
float a[10];
int b[10];
cout<<sum(A,10);
cout<<sum(B,10);
}
A generic function for multipurpose is called function template
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 74/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 71
6. Explain Exception handling.
Exceptions are run time anomalies or unusual events like divide by
zero, out of range, index overflowing, running out of memory or disk space
error etc.
C++ supports exception handling mechanism to detect and manage
runtime errors.
Exceptions are classified into two major types. They are:
1. Synchronous
Error such as out of range, index overflowing, running out of
memory or disk space are called as synchronous type of exceptions.
2. Asynchronous
Events that are passed beyond the control of program such as
keyboard interrupts are called as Asynchronous.
Note: C+ supports Synchronous exceptions only.
There are two basic blocks to handle exceptions. They are1. Try -> to throw the exception
2. Catch -> to catch exception
Exce tions
Synchronous
Exceptions
Asynchronous
Exceptions
Normal code
code that
cause exception
yes
noexception
handler
Normal code
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 75/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 72
Syntax for Try block
try
{
…….
throw(exception)}
Syntax for catch block
catch(argument type)
{
…….
}
Steps involved in handling exceptions are:
1. Fix the problem
2. Inform that Error is occurred3. Receive error information
4. Take corrective action
Purpose of exception handling is to detect and report exception
circumstances, so that appropriate action can be taken. The mechanism
used in C++ to handle exception is throwing and catching exceptions.
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 76/77
OBJECT ORIENTED PROGRAMMING IN C++, DEPT. OF CSE, DRPEC. 73
22. Explain String manipulation in detail
STRINGS: A string is a sequence of characters. C++ does not
support string data type. But C++ provides a library header file for string
manipulation is called string.h. Using string.h we can easily perform stringoperations like copy, finding string length, finding substring, etc.
The string class is a very large and includes many constructors,
member functions and operators. We may use these constructors, member
functions and operators to achive the following.
• Creating String objects
• Reading String objects
• Displaying String objects to the screen
• Finding a sub-string from a String
• modifying String objects
• Comparing String objects
• Adding String objects
• Accessing character in a string
• Obtaining the size of the string
Constructors
String() //create empty string
String(const char *str) //creating a String objects from a null-
terminated string
String(const string &str) //creating a String objects from a null-terminated string
Functions
append() at() compare() begin() end()
erase() find() insert() length() substr()
Operators
+, =, +=, ==, 1=, <, <=, >, >=
Examples
String s1 (“Dr Pauls”);String s2;
s2=s1;
s2=s1+”Engineering College”
8/3/2019 Questions and Answers for Object Oriented Progamming in C++
http://slidepdf.com/reader/full/questions-and-answers-for-object-oriented-progamming-in-c 77/77
Biography
Mr. G. Appasami was born in Pondicherry, India in 1980. He received his
Master of Science degree in Mathematics, Master of Computer
Applications degree and Master of Technology degree in Computer Science
and Engineering from Pondicherry University, Pondicherry, India. He
received his Master of Philosophy in Computer Science from Alagappa
University, Karaikudi, India.
Currently he is faculty in Dr. Pauls Engineering College, Villupuram and
affiliated to Anna University Chennai, Tamil Nadu, India. He is a life
member of Indian Society for Technical Education, Computer Society of
India, International Association of Computer Science and Information
Technology (Singapore) and International Association of Engineers.
He also qualified Gate Exam. His Area of interests includes Network
Security, image processing and web technology. He has published more
papers in national & international journals and conference proceedings.
Email: [email protected]
Website: www.appas.110mb.com