• P is an object pointer to a class student with data member mark. Select the correct
method of accessing from the following list:
a) P.mark
b) P::mark
c) P*mark
d) P→mark
2. Divya wrote a C++ function that allocates memory for100 integers using new operator.
Identify the problems that may arise if she does not use delete operator in it.
4. For a geometric system discuss the underlying OOP feature in the following operations
a) To combine data and function as a single unit
b) To define a function perimeter that finds perimeter for different shapes.
6. Distinguish between
a. Call by value and call by reference
b. Global variable and local variable
c. Class and object
d. Structure and Class
e. Data hiding and encapsulation
f. Simple variable & pointer variable
g. Constants and identifiers
h. Library functions and user defined functions
i. Structure & array
j. ‘a’ and “a”
k. a=5 and a = = 5
Copy constructors are called in following cases:
a) when a function returns an object of that class by value
b) when the object of that class is passed by value as an argument to a function
c) when you construct an object based on another object of the same class
d) When compiler generates a temporary object
Diff. bet. Break and continue
A break statement results in the termination of the statement to which it applies (switch, for,
do, or while). A continue statement is used to end the current loop iteration and return control
to the loop statement.
• What is inheritance?
• Difference between Composition and Aggregation.
• What is Polymorphism?
• Is class an Object? Is object a class?
• Comment: C++ "includes" behavior .
• What is the use of Operator Overloading?
• Every object has : state, behavior and identity – explain.
• Why constructors have no return type?
• Why destructors invoke in reverse order?
• What is role of constructor?
• Why we need constructors?
• What property of OOP is implemented in Constructors?
• Can destructors be overloaded Yes/No & Why?
• Can constructors be overloaded Yes/No & Why?
• What is difference between default constructor and constructor with default
arguments?
• Can constructor use static variables?
• Does any value is returned by Constructors?
• Why the reference of an object is passed in copy constructor?
• When copy constructor is invoked?
• From the given conditions (1) Sample S1=S2; (2) S1=S2 ; When copy constructor
will invoke.
• if a derived class has no parameters for its constructor but a base class has
parameterized constructor , how the constructor for the derived class would defined?
EXPECTED VIVA questions(SOLVED)
• What is a class?
Class is concrete representation of an entity. It represents a group of objects, which hold similar
attributes and behavior. It provides Abstraction and Encapsulations. Classes are generally declared
using the keyword class.
1. What is an Object? What is Object Oriented Programming?
Encapsulation is binding of attributes and behaviors. Hiding the actual implementation and
exposing the functionality of any object. Encapsulation is the first step towards OOPS, is
the procedure of covering up of data and functions into a single unit (called class). Its
main aim is to protect the data from out side world
1. What is Abstraction?
Adding a new method with the same name in same/derived class but with different
number/types of parameters. It implements Polymorphism.
1. What is Inheritance?
It is a process in which properties of object of one class acquire the properties of object of
another class.
1. What is an Abstract class?
An abstract class is a special kind of class that cannot be instantiated. It normally contains
one or more abstract methods or abstract properties. It provides body to a class.
1. What is Polymorphism? And its type?
• What do you mean by iostream.h?
· What is inheritance and its type?
· What is the difference b/n public, private and protected?
• Public: The data members and methods having public as access outside the class.
• Protected: The data members and methods declared as protected will be accessible to
the class methods and the derived class methods only.
• Private: These data members and methods will be accessibl not from objects created
outside the class.
1. What is a void return type?
A void return type indicates that a method does not return a value.
1. What is the difference between a while statement and a do statement?
A while statement checks at the beginning of a loop to see whether the next loop
iteration should occur. A do statement checks at the end of a loop to see whether
the next loop iteration should occur..
1. What is a nested class? Why can it be useful?
A nested class is a class enclosed within the scope of another class. For example:
// Example 1: Nested class // class Outer Class {class Nested Class {// …}; //...
1. What is inline function?
Normally, a function call transfers the control from the calling program to the function
and after the execution of the program returns the control back to the calling
program after the function call. These concepts of function saved program space and
memory space are used because the function is stored only in one place and is only
executed when it is called. This concept of function execution may be time consuming
since the registers and other processes must be saved before the function gets called.
The extra time needed and the process of saving is valid for larger functions. If the
function is short, the programmer may wish to place the code of the function in the
calling program in order for it to be executed. This type of function is best handled by
the inline function. In this situation, the programmer may be wondering “why not write
the short code repeatedly inside the program wherever needed instead of going for
inline function?” Although this could accomplish the task, the problem lies in the loss of
clarity of the program. If the programmer repeats the same code many times, there will
be a loss of clarity in the program. The alternative approach is to allow inline functions
to achieve the same purpose, with the concept of functions.
1. What is preprocessor?
The preprocessor is used to modify your program according to the preprocessor
directives in your source code. Preprocessor directives (such as #define) give the
preprocessor specific instructions on how to modify your source code. The
preprocessor reads in all of your include files and the source code you are
compiling and creates a preprocessed version of your source code. This
preprocessed version has all of its macros and constant symbols replaced by
their corresponding code and value assignments. If your source code contains
any conditional preprocessor directives (such as #if), the preprocessor evaluates
the condition and modifies your source code accordingly.
The preprocessor contains many features that are powerful to use, such as
creating macros, performing conditional compilation, inserting predefined
environment variables into your code, and turning compiler features on and off.
For the professional programmer, in-depth knowledge of the features of the
preprocessor can be one of the keys to creating fast, efficient programs.
1. What is the difference between overloading and overriding?
Overloading - Two functions having same name and return
Type, but with different type and/or number of arguments.
Overriding - When a function of base class is re-defined in
the derived class.
1. C++ Memory Management operators
The concept of arrays has a block of memory reserved. The disadvantage with the
concept of arrays is that the programmer must know, while programming, the size
of memory to be allocated in addition to the array size remaining constant. In
programming there may be scenarios where programmers may not know the
memory needed until run time. In this case, the programmer can opt to reserve as
much memory as possible, assigning the maximum memory space needed to tackle
this situation. This would result in wastage of unused memory spaces. Memory
management operators are used to handle this situation in C++ programming
language.
1. What are memory management operators?
There are two types of memory management operators in C++:
• new
• delete
1. What is array and its type?
2. What is the difference b/n array and pointer?
Pointer –pointer is a variables that hold the address of another variable .It is used to
manipulate data using the address, pointer use the * operator to access the data
pointed by them.
Array –array use subscripted [] variable to access and manipulate the data ,array
variables can be equivalently written using pointer expression.
A special function Always called whenever an instance of the class is created.
• Same name as class name
• No return type
• Automatically call when object of class is created
• Used to initialize the members of class
• class Test
{ int a,b;
Test()
{ a=9;b=8; } };
Constructor which initializes it's object member variables ( by shallow copying) with
another object of the same class. If you don't implement one in your class then compiler
implements one for you.
for example:
• Test t1(10); // calling Test constructor
Test t2(t1); // calling Test copy constructor
Test t2 = t1;// calling Test copy constructor
• Copy constructors are called in following cases:
• when a function returns an object of that class by value
• when the object of that class is passed by value as an argument to a function
• when you construct an object based on another object of the same class
Constructor with no arguments or all the arguments has default values. In Above Question
Test() is a default constructor
1. What is friend function?
As the name suggests, the function acts as a friend to a class. As a friend of a class, it can
access its private and protected members. A friend function is not a member of the class.
But it must be listed in the class definition.
1. What is a scope resolution operator?
A scope resolution operator (::), can be used to define the member functions of a class
outside the class.
1. What do you mean by pure virtual functions?
A pure virtual member function is a member function that the base class forces derived
classes to provide. Normally these member functions have no implementation. Pure virtual
functions are equated to zero. class Shape
{ public: virtual void draw() = 0;}
1. What are the advantages of inheritance?
It permits code reusability. Reusability saves time in program development. It encourages
the reuse of proven and debugged high-quality software, thus reducing problem after a
system becomes functional
1. What are virtual functions? Describe a circumstance in which virtual functions would be
appropriate
Virtual functions are functions with the same function prototype that are defined
throughout a class hierarchy. At least the base class occurrence of the function is preceded
by the keyword virtual. Virtual functions are used to enable generic processing of an entire
class hierarchy of objects through a base class pointer. For example, in a shape hierarchy,
all shapes can be drawn. If all shapes are derived from a base class Shape which contains
a virtual draw function, then generic processing of the hierarchy can be performed by
calling every shape’s draw generically through a base class Shape pointer.
A virtual function must have a definition in the class in which it is declared. A pure virtual
function does not provide a definition. Classes derived directly from the abstract class
must provide definitions for the inherited pure virtual functions in order to avoid becoming
an abstract base class
Classes:
Ans. No function call is made to inline functions as the source code is copied to the program during
compilation whereas in ordinary functions, the control is switched over to the function block when
function is called.
3. What are the situations where the inline functions do not work?
c. a recursive function
Ans. Any ordinary function (non-member of a class) which has access privileges to the private
members of a class are called friends of a class.
Ans. Accessor function – which can only access the data members(not edit it), mutator function –
which can manipulate the data members (getdata(),calculate()), manager function – specific
functions (constructor, destructor)
8. What must be done to make the static data member of a class work?
9. What is the difference between static member function and ordinary member functions:
Ans. Static function of a class can access only the other static members of a class. Static function of a
class is invoked by using the class name instead of object name.
10. How does the memory allocation for member functions and data members take place?
Ans. Member functions are created and placed in memory only once when the class is defined. The
memory is allocated for objects’data members when the objects are declared. All objects share the
same member functions.
11. Name the methods through which polymorphism is exhibited in C++?
Ans. Functions having the same name but which differs in number of type of arguments is called
overloaded functions. It has nothing to do with return types( data type of functions)
13. What contributes to function overloading – function signatures or return type of function – Ans.
function signature
14. Name the various types of constructors- default , parameterized, copy constructor
15. How is a copy constructor called ? Ans – It is called by call by reference only.
Ans- used to defined methods of a class outside the class, to unhide global variable having the same
name as the local variable in a block
Ans. constructors can take arguments but destructor can't , constructors can be overloaded but
destructors can't be overloaded.
20. Write a statement in C++ to prove that even primitive data types have constructors . Ans – int
k(2).
21. What are the privileges of friend function of a class- to access the private and protected
members of a class
22. What happens when constructor functions are invoked – objects are create
Revision
23. How many ways of representing an integer – decimal, octal and hexadecimal
25. Difference between goto and gotoxy – goto is C++ statement and gotoxy () is a function defined
in conio.h
26. Why is char treated as integer? –memory represents char in ASCII codes(numeric)
27. What is the length of escape sequences ? – 1 byte.
28. Name the only data type of which we cannot declare any variables?
Ans. Void
Ans. Union is when two variables usually of different types sharing the same memory location ( any
one occupies memory at a time). Enumeration is a way of declaring integer constants. Eg. Union
share { int x, char y;};
32. Which of the following is not a jump statement? Switch, goto, break, exit.
n. Switch.
33. Which of the following will work only in a loop – break, goto, continue, exit.
35. If a function does not have a data type specified which will be its datatype by default ? – Ans. Int
Ans – zero
38. A function that calls itself for its processing is known as – recursive function
39. Strings are character arrays. The last index of it contains the null-terminated character – ‘\0’.
40. What is the only function all C++ programs must contain? – main()
43. What is the difference between int K[2] and int K(2) ? – first is in integer array of size 2 whereas
second is declaring a variable K with initial value 2.
44. Differences between abort() and exit() – abort()- aborts “abnormal termination” exit()- closes all
files and writes the buffered output before termination.
45. biggest number that can be represented by – int (32,767) and unsigned int (65,535)
Ans. Structures are heterogeneous collection of data whereas arrays are homogenous collection of
data. Members of a structure are referred to by dot operator whereas array elements are referred
to by subscript values.
Ans. Both structures must be of the same type ( same tag name)
Ans. Typedef creates an alternative name for a standard data type whereas reference creates an
alternative name for a variable.
Inheritance :
51. What is the default inheritance visibility mode? - private (if no visibility is specified it is private)
52. Can a derived class access the private members of the base class? If Yes, how? – can only access
them through the nonprivate members.
When object of derived is inherited first the constructor of base class and then the derived class but
for destructor first the destructor of derived class and then the base class is invoked.
55. What is the difference between protected and private members of class –
1 byte.
57. Which operator can be used prove that the private members of the base class are actually
hidden in the derived (visible ) but not accessible?
ans. Sizeof() operator on the object of the derived class will prove this.
Ans. When a class contains objects of other class types as its members it is called containership
Ans. When a class inherits from another class, the derived has a IS-A relationship with the base class.
When a class contains the object of another class type – then the class containing the object has a
HAS –A relationship with the contained class.
Ans. When a function of base class is re-defined in derived class – it is called function overriding.
63. What is the advantage of inheritance ? Ans – code reusability and saving of programming time.
66. by default all files are treated as – text files in C++ ( not binary)
71. Name the stream classes in C++ for I/O – ofstream, ifstream, fstream.
72. Name the member functions belonging to fstream class – get(), seekp(), seekg()
75. While writing class objects what is written to files data members or member functions?
Ans. Random access is managed by using seekg(), seekp(), tellg(), tellp() functions.
Pointers:
77. What is the difference between constant pointers and pointer to a constant?
Ans. When a function is called by reference method only variables can be passed not constants or
expressions as in call by value method.
79. Which operator is used to refer to the object pointers(class and structure) ?
81. State two situations in which this pointer is not used in classes?
Ans. static member functions do not have this pointer and friend functions are not passed this
pointer
82. Which are the two memory management operators in C++.
83. What is Static memory allocation and dynamic allocation ? static- at compilation time and
dynamic at run time(using NEW operator)
84. What is life time of dynamically allocated memory variable ? – till it is de-allocated.
85. What is memory leak – if the no. of dynamically allotted memory variable are not deleted using
delete –
Arrays ;
86. How are arrays passed to a function? – by reference/pointers and not by value method
87. What do you mean by traversal – processing all data elements of an array is called traversal.
90. Which are the two ways of memory allocation of a 2-D array – row and column major
91. What is the precondition for a binary search ? – array should be sorted.
93. Which are the two types of queues ? circular and dequeue
Ans. Linear search – demerits takes more iterations to find an element especially if it is towards the
end of array. Array need not be sorted.
96. If arr is an array of integer – is arr++ expression legal – why? (no- base address of a array cannot
be changed)