版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}
执行结果: