Output of C++ programs | Set 26 (Constructors)
Prerequisite – Constructors in C++
1. What is the output of following program?
CPP
#include <iostream> using namespace std; class construct { int a, b; public : construct() { a = 0; b = 0; } }; int main() { construct c; cout<< "a: " << c.a << endl << "b: " << c.b; return 1; } |
Output:
error
Description: The variables in the class are by default private in C++. And therefore, they cannot be accessed out side the class. For the code, to work perfectly they need to be declared as public like the construct() then it will print a and b as 0.
2. What is the output of following program?
CPP
#include <iostream> using namespace std; class construct { public : float area; construct() { area = 0; } construct( int a, int b) { area = a * b; } void disp() { cout<< area<< endl; } }; int main() { construct o; construct o2( 10, 20); o.disp(); o2.disp(); return 1; } |
Output:
0 200
Description: C++ allows more than one constructor. The other constructors must have different parameters. Additionally, constructors which contain parameters are given default values must adhere to the restriction that not all parameters are given a default value. This is a situation which only matters if there is a default constructor.The constructors get loaded when an object is created based on the parameters.
3. Which constructor will be executed?
CPP
#include<iostream> using namespace std; class constructor { int x, y; public : constructor( int a = 10, int b = 20 ) { x = a; y = b; } void Display() { cout<< x << " " << y << endl; } }; int main() { constructor objBix; objBix.Display(); return 0; } |
Output:
Parameterized constructor (Output will be 10 20)
Description: When we declare any constructor in a class, compiler doesn’t create the default constructor. The same thing happens in this case but as parameterized constructor contains default values for all the arguments, it will be called. But if you declare default constructor here, compiler will give error (ambiguous call) as it will not be able to decide which constructor to call.
4. What is the output of following program?
CPP
#include<iostream.h> class constructor { int x; public : constructor( short ss) { cout<< "Short" << endl; } constructor( int xx) { cout<< "Int" << endl; } constructor( float ff) { cout<< "Float" << endl; } }; int main() { constructor c( 'B' ); return 0; } |
Output:
Int
Description: As ‘B’ gives the integer value i.e, 66. so, the parameterized constructor with integer parameter will be executed.
5. What is the output of following program?
CPP
#include <iostream> using namespace std; class constructor { int a; public : constructor( int x) { a = x; } void display() { cout<< "a: " <<a << endl; } }; int main() { constructor c1(10); constructor c2 = c1; c1.display(); c2.display(); return 1; } |
Output:
a: 10 a: 10
Description: This program demonstrates copy constructor concept.
This article is contributed by I.HARISH KUMAR. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Please Login to comment...