如下类数据结构声明:
class B;
class A
{
private:
B *pb;
//其他成员
int i;
.
.
.
};
类有指针类型的数据成员时,一般都要自定义拷贝构造函数和赋值操作符吧。于是:
A& A::operator=(const A &a)
{
if(...)
pb = new B;
else
pb = a.pb;
//其他 成员赋值
i = a.i;
.
.
return *this;
}
拷贝函数略
很烦很烦,而且个人感觉不美观。
一个想法。修改类结构声明为:
class B;
class B_Handle
{
private:
B *pb;
};
class A
{
private:
B_Handle bh;
//其他成员
int i;
.
.
.
};
现在,只需要自定义B_Handle的拷贝构造函数和赋值操作符。听说,这B_Handle是句柄类。
--------------------------------------------------------------------------------------------------------------
听说,把自己的想法给大神看,能够得到批阅。