在c++中如何访问继承类中的私有基成员变量
In C++ how do I access a private base member variable in an inherited class?
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
?
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- C++预处理会生成变量成员、资源库和映射
- 局部堆栈变量成员的返回值优化
- Google Mock:在目标类的构造函数中实例化的模拟私有变量成员
- 使用指向结构变量成员的指针访问该结构的成员的地址
- 如果派生类仅包含自动变量成员,是否有必要具有虚拟驱动器
- 线程安全性和静态变量/成员功能
- "static const char array"可以在 C 语言上包含变量成员吗
- 仅用于内部目的的类的所有变量/成员的技术术语是什么
- 如何强制转换变量成员以将其作为函数的引用参数传递
- 类中未声明变量成员函数
- 在 main 中初始化类的 "static const" 类型变量成员的更好方法
- c++模板类静态const变量成员作为映射键给出未定义引用
- 在类中初始化结构变量成员会导致分割错误
- 在c++中建模变量成员类型
- 模板私有静态变量成员的未定义符号
- 不能访问公共静态变量成员
- 常量变量成员在C++有什么用?
- g++ 4.8.2坚持简单变量成员是数组