C++ | Constructors | Question 6
Output of following C++ code will be?
C++
#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
Please Login to comment...