65,194
社区成员




//定义一个类CSrvcBillDtlWBill继承自CSrvcBillDtl
class CSrvcBillDtlWBill : public CSrvcBillDtl
{
//重载=运算符,作为类成员。参数是(this,const CSrvcBillDtlWBill& right),返回该类型的应用
//应用于CSrvcBillDtlWBill a,b; a = b这类情况。
CSrvcBillDtlWBill & operator=(const CSrvcBillDtlWBill& right)
{
//判断地址,如果是同一个对象,则什么什么也不做。返回指向该对象的指针
if ( &right == this )
return *this;
//如果不是则赋值相关成员。从right到this
CSrvcBillDtl::operator =(right);
copyMember(right);
//返回更新了的this指针
return *this;
}
}
if ( &right == this ) //如果是自己给自己赋值,就直接返回
return *this;
CSrvcBillDtl::operator =(right); //调用父类的=操作符重载函数
copyMember(right); //
return *this; //返回this的引用,根据上面举的例子,这个this就是obj1对象!
class CSrvcBillDtlWBill : public CSrvcBillDtl(这个也是一个类)//继承, CSrvcBillDtlWBill子类,CSrvcBillDtl父类
{
CSrvcBillDtlWBill & operator=(const CSrvcBillDtlWBill& right)//重载=操作符 ,其返回一个CSrvcBillDtlWBill 对象的引用,
//调用的时候是 obj1CSrvcBillDtlWBill = obj2CSrvcBillDtlWBill ,那么obj2就会作为right参数传入,因为在此函数中不会修改right的值,所以一般申明为const,而且不想多余复制临时对象,所以传入的是一个引用,返回的也是一个引用!
{
if ( &right == this )
return *this;
CSrvcBillDtl::operator =(right);
copyMember(right);
return *this;
}
}