首页 > 代码库 > 关于C++构造函数

关于C++构造函数

如果有多个默认构造函数,比如说:

class MyClass
{
public:
	MyClass() {};
	MyClass(int a = 0, int b = 0,int c=0)
	{
		a_ = a;
		cout << "constructor 1 " << endl;
	}
	MyClass(int a, int b)
	{
		a_ = a;
		b_ = b;
		cout << "constructor 2 " << endl;
	}
	~MyClass() {};

private:
	int a_;
	int b_;
	int c_;
};

如果有无参数的构造函数:

MyClass(){}

那么在声明对象调用构造函数时不加参数,如:

MyClass class();

调用的是:

MyClass(){};

如果在声明对象时,写入三个参数,如:

MyClass class1(1,2,3);

那么调用的是:

MyClass(int a = 0, int b = 0,int c=0)

如果没有无参数的默认构造函数,那么在不加参数的情况下,调用的是:

MyClass(int a = 0, int b = 0,int c=0)

当三个参数都有默认值时,无论如何都不会调用(水平有限,还没有发现调用的情况):

MyClass(int a, int b)

来构造对象。

关于C++构造函数