拷贝构造函数:用一个对象去构造一个对象,即一个对象变成两个意义上相同对象
赋值操作符:用一个对象去同化一个对象,即两个不同或者相同的对象变成两个意义上相同对象
两者即构造函数(特殊成员函数)和成员函数(普通)的区别
难点其实在于”="在上下文环境不同时含义不同导致的疑惑
int b = 3;
int a = b;// 声明并调用拷贝构造函数,此时等价于int a(b);
int a;// 声明并调用默认构造函数(前提是存在)
a = 3;// 赋值
*****至于拷贝构造函数为什么是引用,原因是:拷贝构造函数使用值传递会产生无限递归调用...*****
class A
{
};
A GetA(A a);
以上的传入参数会调用拷贝构造函数,返回值时也会调用拷贝构造函数,因为都是对象不存在,用一个存在的对象去构造他们。