Prerequisite – Constructors in C++
- What is the output of following program?
#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;
}
chevron_rightfilter_noneOutput:
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.
- What is the output of following program?
#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;
}
chevron_rightfilter_noneOutput:
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.
- Which constructor will be executed?
#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;
}
chevron_rightfilter_noneOutput:
default constructor
Description: Here, a parameterised constructor is declared but the object corresponding to that constructor is not created. Therefore, only Default constructor is executed and the control is passed to the function at the function call.
- What is the output of following program?
#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;
}
chevron_rightfilter_noneOutput:
Int
Description: As ‘B’ gives the integer value i.e, 66. so, the parameterized constructor with integer parameter will be executed.
- What is the output of following program?
#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;
}
chevron_rightfilter_noneOutput:
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 contribute.geeksforgeeks.org or mail your article to contribute@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.