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

时间:2016-11-03 02:05:26

标签: c++

class Foo {
private:
    string x;
};

class Bar : public Foo {
public:
    void get_data() {
        cin >> x;
    }
};

我不太明白为什么这行代码不起作用。是否有能力继承成员变量?

2 个答案:

答案 0 :(得分:4)

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

访问说明符protected表示该类,派生类和朋友可以访问。您可以将x设为protected,也可以将get_data()移至Foo的公开部分。

答案 1 :(得分:0)

private对子类隐藏。只有friend s(和Foo本身)才能访问它。也许您希望x成为protected