我知道你可以通过继承来做到这一点,但你的意思是使用继承,除了'是'的情况.我也知道有朋友,但他们也允许访问私人会员.
有没有办法做到这一点(允许访问受保护的类成员而非私人成员)?
为了改写这个问题,我有1级和2级.我希望第二级能够访问第1类的受保护和公共成员,但不是它的私有成员.我该怎么做?
它不优雅,但这可能对你有用:
class B;
class A {
protected:
int x;
private:
int y;
};
class A_wrapper : public A {
friend B;
};
class B {
public:
A_wrapper a;
int foo() {
a.x; // Ok
a.y; // Compiler error!
}
};
Run Code Online (Sandbox Code Playgroud)