想法:指针与拷贝构造函数.类赋值操作符

如下类数据结构声明:

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是句柄类。


--------------------------------------------------------------------------------------------------------------

听说,把自己的想法给大神看,能够得到批阅。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值