C++ Programming - Functions - Discussion
Discussion Forum : Functions - Programs (Q.No. 40)
40.
What is correct about the following program?
#include<iostream.h>
class Base
{
int x, y, z;
public:
Base()
{
x = y = z = 0;
}
Base(int xx, int yy = 'A', int zz = 'B')
{
x = xx;
y = x + yy;
z = x + y;
}
void Display(void)
{
cout<< x << " " << y << " " << z << endl;
}
};
class Derived : public Base
{
int x, y;
public:
Derived(int xx = 65, int yy = 66) : Base(xx, yy)
{
y = xx;
x = yy;
}
void Display(void)
{
cout<< x << " " << y << " ";
Display();
}
};
int main()
{
Derived objD;
objD.Display();
return 0;
}
Discussion:
21 comments Page 1 of 3.
Ayush said:
3 years ago
Option E explain the recursive call for display function()
void Display(void)
{
cout<< x << " " << y << " ";
because of this-> Display();
}
void Display(void)
{
cout<< x << " " << y << " ";
because of this-> Display();
}
Sarvesh karan said:
7 years ago
Why its not an error?
The derived class doesn't have a default constructor and only one parameterized constructor and default constructor cannot be invoked if the user has not specified it.
The derived class doesn't have a default constructor and only one parameterized constructor and default constructor cannot be invoked if the user has not specified it.
Sarvesh karan said:
7 years ago
I think I got the answer. Even if we are creating object with no arguments. It will invoke paremeterized constructor of derived class as it is default in its arguments.
Hulkcpp said:
1 decade ago
It will produce infinite number of output 66 65. Because it is a recursive method without end condition.
Meghnath malhothra said:
8 years ago
It will produce no.of 66 65 because it is a recursive function calling.
Anonymous said:
5 years ago
It should be the E option since it is printing the 66 65 infinitely.
Vishii said:
9 years ago
The answer should be 'B'. Can anyone explain why the answer is 'c'?
Venu Vangari said:
6 years ago
The program will produce the output 66 65 infinite number of times.
Tushar kumar said:
8 years ago
Yes, the answer is E well executed in the c++ compiler.
Manjunath said:
1 decade ago
Its a recursive call so it prints 66 65 infinitely.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers