class Foo {
private:
string x;
};
class Bar : public Foo {
public:
void get_data() {
cin >> x;
}
};
我不太明白为什么这行代码不起作用。是否有能力继承成员变量?
答案 0 :(得分:4)
这是不可能的。 private
表示变量的名称只能由该类(以及任何friend
s)访问。
访问说明符protected
表示该类,派生类和朋友可以访问。您可以将x
设为protected
,也可以将get_data()
移至Foo
的公开部分。
答案 1 :(得分:0)
private
对子类隐藏。只有friend
s(和Foo
本身)才能访问它。也许您希望x
成为protected
?