拷贝构造,对象赋值
拷贝是构造行为,状态取决于用于构造的对象;赋值是对已构造对象进行状态更新。赋值侧重于更新,构造侧重于构造。
等号不等于赋值,他可能是拷贝构造下面这个语句被识别为构造
string str="apple";
string strr=str;//我是构造,不是赋值
下面这个语句被识别为赋值:
string str="apple";
string strr
strr=str;//我才是赋值
等号“=”是赋值还是构造取决于左值是否第一次出现。
函数返回值是拷贝构造函数返回值如果是一个类,那么返回的对象首先将会被拷贝构造到一个临时对象,这个对象是const的。
A fun()
{
A a;
return a;//拷贝g构造到一个const temp_class_A中
}
class A
{
public:
A()
{
cout
关注
打赏