访问私有变量时出现c2248错误

c 2248 error during private variable access

本文关键字:c2248 错误 变量 访问      更新时间:2023-10-16

我试图使用公共函数从类访问私有变量。

class myCls : public CFormView
{
private:
CString pvtMem;
public:
CString getPvtmem() { return pvtMem; }
}

我做了这样的事情:

myCls *lmyCls = new myCls() ;
CString *lPvtMem = lmyCls->getPvtmem();

,但我得到错误c2248然后我把pvtMem从私人改为公共。但我还是犯了同样的错误。我试图访问pvtMem直接使用对象,因为它的公共。但力量似乎起作用了。我做了各种各样的点击,比如

myCls lmyCls;
CString lPvtMem = lmyCls.pvtMem ;

编译器不喜欢任何东西:(好吧,myCls是在batchdlh文件中定义的,它#包含在我的电话课。

在您的第一个示例中,您返回"CString",但将其分配给"CString *"(指针)。

在第二个示例中,您调用类的operator=()方法(赋值操作符)。修改"lPvtMem"将修改它的变量副本,而不是原始变量。

试题:

CString *getPvtmem() { return &pvtMem; }
CString *lPvtMem = lMyCls.getPvtmem();

现在函数返回一个指向私有成员的指针,赋值是指向CString类的指针。现在修改lPvtMem将修改类中的对象。