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;
}
