按书上说,自定义的类会默认产生一个“赋值运算符=”,并且“赋值运算符=”是很特殊的,不能被继承。class CTest:public CObject
{
public:
......
}
或
class CTest
{
public:
......
}CTest a;
CTest b;
a=b;//这一句有问题,如果我指定了父类是CObject,那么=操作符就不能用,不指定就行。
{
public:
......
}
或
class CTest
{
public:
......
}CTest a;
CTest b;
a=b;//这一句有问题,如果我指定了父类是CObject,那么=操作符就不能用,不指定就行。
1、赋值运算符(=) 是可以重载的
2、赋值运算符(=)在CObject中虽然有定义,但是没有实现。c++中,如果你没有为一个类定义"="操作符,那么编译器会为你提供一个默认的,这就是你随便写一个类可以用"="操作符的原因。但是CObject中已经定义了"="操作符,只是没有实现,也就是说编译器不会为你提供默认的"="操作符了,必须要你自己实现。从CObjcet继承的子类也是这样。
=================================================================================
yinwei因为你需要重载CObject的=操作