gpt4 book ai didi

C++:允许访问 protected 类成员而不是私有(private)成员

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:59 25 4
gpt4 key购买 nike

我知道您可以通过继承来做到这一点,但您应该在"is"情况下使用继承。我也知道有 friend ,但他们也允许访问私有(private)成员。

有什么方法可以做到这一点(允许访问 protected 类成员而不是私有(private)成员)?

为了改写这个问题,我有第 1 类和第 2 类。我希望第 2 类可以访问第 1 类的 protected 和公共(public)成员,但不能访问它的私有(private)成员。我该怎么做?

最佳答案

它并不优雅,但这可能适合你:

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!
}
};

关于C++:允许访问 protected 类成员而不是私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10277191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com