C++ 类的三种构造函数(默认构造,拷贝构造,赋值构造),在什么情况下会被调用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w442863748/article/details/51190087

用什么方式实例化一个类会调用什么构造函数.

其实是很简单很基础的问题,只不过越是简单的问题在关键的时候越容易出问题,在这里记下,省得每次都要试.

直接上代码:

class A
{
private:
	int a;
public:
	A():a(0)
	{
		cout << "默认构造" << endl;
	}
	A(const A& val)
	{
		a = val.a;
		cout << "拷贝构造" << endl;
	}
	A& operator=(const A& val)//赋值构造(赋值运算符重载)
	{
		a = val.a;
		cout << "赋值构造" << endl;
		return *this;
	}
};

int main(int argc, char *argv[])
{
	A a;//默认构造
	A b(a);//拷贝构造
	A c = a;//拷贝构造
	c = a;//赋值构造

	system("pause");
	return 0;
}
执行结果:



猜你喜欢

转载自blog.csdn.net/w442863748/article/details/51190087