What is the output of code given below : #include<iostream.h> using namespace std; class Base { public: Base(){ cout<<"Base Const"; } virtual ~Base() { cout<<"Base dest"; } }; class Derived : public Base { public: Derived() { cout<<"Derived Const"; } ~Derived() { cout<<"Derived dest"; } }; int main() { Base *b=new Derived(); delete b; return 0; }
Base Const Derived Const Derived dest Base dest
When an object of a derived class is created, the base-class constructor runs first and then the derived-class constructor. Destruction happens in the reverse order. If the object is deleted through a base-class pointer, the derived destructor is reached only when the base destructor is declared virtual.
Step 1 — new Derived() first calls Base(), printing Base Const, and then Derived(), printing Derived Const.
Step 2 — delete b is applied to a Base *. Because ~Base() is virtual, the call is dispatched dynamically to ~Derived(), which prints Derived dest.
Step 3 — After the derived destructor finishes, the base destructor runs automatically and prints Base dest.
Printing Base dest before Derived dest would reverse the guaranteed destruction order. Printing Derived Const before Base Const reverses the construction order. Stopping after Base dest would happen only if the base destructor were not virtual, so that the derived part were never destroyed.
Base Const Derived Const Derived dest Base dest option is correct.
How to express that some person keeps animals as pets ?
What is true about UML stereotypes ?
Which of the following is/are correct with reference to Abstract class and interface ?
(a) A class can inherit only one Abstract class but may inherit several interfaces.
(b) An Abstract class can provide complete and default code but an interface has no code.
Codes :
Match the following with reference to object oriented modelling :
| List - I | List - II |
| (a) Polymorphism | (i) Picking both operator and attributes with operations appropriate to model an object |
| (b) Inheritance | (ii) Hiding implementation details of methods from users of objects |
| (c) Encapsulation | (iii) Using similar operations to do similar things |
| (d) Abstraction | (iv) Create new classes from existing class |
Codes :
Which of the following is used to make an Abstract class ?
Match the following w.r.t. programming languages :
| List - I | List - II |
| (a) JAVA | (i) Dynamically object oriented |
| (b) Python | (ii) Statically Non-object oriented |
| (c) Prolog | (iii) Statically object oriented |
| (d) ADA | (iv) Dynamically non-object oriented |
Codes :
In C++, which system - provided function is called when no handler is provided to deal with an exception ?
Consider the following two statements :
(a) A publicly derived class is a subtype of its base class.
(b) Inheritance provides for code reuse.
Which one of the following statements is correct ?
Module design is used to maximize cohesion and minimize coupling. Which of the following is the key to implement this rule ?
When the inheritance is private, the private methods in base class are __________ in the derived class (in C++).
Which statements is correct regarding main () function in C++?
I. It is a user defined function.
II. It is a pre-defined function.
Consider the following segment of C++ code.
int j, n;
for(j=1;j<=n; )
j=j*2;
What is the number of comparisons made in the execution of the loop for any n > 0?
Given below are two statements:
Statement (I): The friend function and the member functions of a friend class directly access the private and protected data.
Statement (II): The friend function can access the private data through the member functions of the base class
In the light of the above statements, choose the most appropriate answer from the options given below:
If a constructor 'Date' is declared explicitly and has to be defined outside the class, which of the following is correct?
Which of the following statements is TRUE ?