Output of following C++ code will be?
#include <iostream> using namespace std;
class X
{ public :
int x;
}; int main()
{ X a = {10};
X b = a;
cout << a.x << " " << b.x;
return 0;
} |
(A)
Compiler Error
(B)
10 followed by Garbage Value
(C)
10 10
(D)
10 0
Answer: (C)
Explanation:
The following may look like an error, but it works fine. X a = {10}; Like structures, class objects can be initialized. The line “X b = a;” calls copy constructor and is same as “X b(a);”. Please note that, if we don’t write our own copy constructor, then compiler creates a default copy constructor which assigns data members one object to other object.
Quiz of this Question
Please comment below if you find anything wrong in the above post