在c++中如何访问继承类中的私有基成员变量

In C++ how do I access a private base member variable in an inherited class?

本文关键字:变量 成员 继承 c++ 何访问 访问      更新时间:2023-10-16
class Foo {
private:
    string x;
};
class Bar : public Foo {
public:
    void get_data() {
        cin >> x;
    }
};

我不太明白为什么这行代码不工作。继承成员变量的目的不就是这样吗?

这不可能。private表示变量名只能由该类访问(以及任何friend)。

访问说明符protected表示该类、派生类和友类都可以访问。您可以将x设置为protected,或者将get_data()移动到Foo的公共部分

private对子类是隐藏的。只有friend s(和Foo本身)可以访问它。也许你想让x变成protected ?