+ 1
Can we have more than one constructors in a class?
3 Réponses
+ 6
You can have many, as long as they don't have the same parameters and in the same order in the signature.
I think there are three known types:
° Default (in which you inicialize everything with a default value )
°Common (some are passed through parameters and others as in Default)
° Complete (of full I guess, I learned in Spanish) in which you don't inicialize anything with a default value, you use the parameters.
+ 2
We can have more than one constructor in a class, as long as each has a different list of arguments.
#include<iostream>
using namespace std;
class Point
{
private:
int x, y;
public:
// Two constructors
Point(int x1, int y1) { x = x1; y = y1; }
Point() {x = 0; y = 0; }
int getX() { return x; }
int getY() { return y; }
};
int main()
{
Point p1(10, 15); // first constructor is called here
Point p2; // Second constructor is called here
// Let us access values assigned by constructors
cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
return 0;
}
output :
p1.x = 10, p1.y = 15
p2.x = 0, p2.y = 0
0
Yes
Your default and non default constructors.