我有一个类:访问私有成员
class A
{
private:
ComplexClass member1;
public:
getMember1(){return member1;};
};
,我有,为了简化代码(更容易理解),需要检索的member1与它合作的实现。这是要我的脑海里的第一件事是:
ComplexClass *myComplexClass = &getMember1();
myComplexClass.getSomething();
myComplexClass.getSomethingElse();
etc.
这显然是不正确的,因为我从获取一个新的对象的指针,而不是从member1中(并得到一个编译器警告)。
我的问题是:做这种事情的最佳设计是什么?我该如何保持封装,并利用指向它的指针访问成员? (我只想从member1读取,而不是写在它上面)。
我应该做一个
ComplexClass *getPointerToMember1()
A类里面?
'ComplexClass myComplexClass = a.getMember1(); myComplexClass.getSomething();'? –
你可能不应该添加一个getter开始。为什么外部实体需要访问成员1.这是唯一的实体吗?如果是这样,让它成为朋友。 –