在我们定义的Class中如果需要继承,或者是必须继承Object类时,我们又需要对类的对象进行操作是,会出现:error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)问题,这是由于微软将Object类的操作运算符设置为private,在我们用到是需要这些操作符时,就需要我们自己来实现,来重载。
我在使用过程中遇到两种问题,现在一一道来。
1、类对象进行赋值操作时。
如:
类CTest:
class CTest : public CObject
{
public:
CGridData(void);
virtual ~CGridData();
public:
int a;
……
}
CTest.cpp中使用:
CTest test1;
test1.a = 10;
CTest test2;
test2 = test1;//这里就会出现上述错误:“CObject::CObject”: 无法访问 private 成员
原因是我们没有重载Object类的赋值运算符(=);
解决方法如下:类中添加
class CTest : public CObject
{
public:
CGridData(void);
virtual ~CGridData();
CTest &CTest::operator = (const CTest & RightSides)//添加运算符=
{
a = RightSides.a;
}
public:
int a;