c++primer第四版讲智能指针时在定义HasPtr类的赋值操作符时为什么既使使用计数加一又减一
可不可以举个具体例子说明一下,说明一下如果不这样做会怎样,请问是不是被赋值的对象已经存在。还有,赋值操作符不是应该返回右操作数吗,为什么好像很多返回左操作数*this
不是所有人都看过“c++primer第四版HasPtr类的定义”,即使看过,也未必还记得。
所以,你的问题估计没几个人懂你在说什么:)
class A { public: A() { cout<<"这是构造函数"<<endl; } A(const A& a) { cout<<"这是拷贝构造函数"<<endl; } A& operator=(const A& a) { cout<<"这是赋值重载函数"<<endl; return *this; } }; int main() { A a; A b; a=b; A c=a; return 0; }