在我们定义的Class中如果需要继承,或者是必须继承Object类时:
我们又需要对类的对象进行操作是,会出现:
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)问题,
这是由于微软将Object类的操作运算符设置为private,在我们用到是需要这些操作符时,就需要我们自己来实现,来重载。
常见的情况:
1--类对象进行赋值操作;
class CTest : public CObject
修改:
CTest &CTest::operator = (const CTest & RightSides)//添加运算符=,自己实现
2--使用CMap或者是Vector一些提供的模板库包含类数据时,即使包含重载运算符=也会出现上述问题
CTest(const CTest & C)//添加拷贝构造函数
{
a = C.a;
}
CTest & CTest::operator = (const CTest & RightSides)//添加运算符=
{
a = RightSides.a;
}