Open In App
Related Articles

C++ | Constructors | Question 6

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

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

Last Updated : 28 Jun, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads