私有变量继承
Private Variable Inheritance
我对私有变量是如何继承的感到困惑,当我试图在继承的类中使用它们时,我会收到错误,告诉我的变量是私有的。
一个赤裸裸的例子。
比方说:
//dog.h
class dog
{
private:
bool fluffy;
public:
...
};
比方说:
//dog.cpp
#include "dog.h"
...
现在:
//shepard.h
#include "dog.h"
class shepard: public dog
{
private:
...
public:
void groom();
};
和:
//shepard.cpp
#include "shepard.h"
void shepard::groom()
{
fluffy = false;
}
如果我尝试使用新郎功能,我会得到一个错误,比如:
error: 'bool dog::fluffy' is private
我做错了什么?可选:将来设计此解决方案的最佳方式是什么?
继承最重要的规则是:
除了同一类的成员之外,任何地方都无法访问类的私有成员
进一步的私人继承:
基类的所有公共成员都成为派生类的私有成员&
基类的所有受保护成员都成为派生类的私有成员
阅读良好:
什么是访问说明符?我应该与私人继承、受保护继承还是公开继承?
相关文章:
- 从类继承时,继承的类是否会通过父类重新定义继承的变量
- 如何从另一个文件继承私有成员变量和公共函数
- 继承时如何构建派生类的变量?
- 在类中继承静态变量?
- 打印所有继承的类成员变量和方法
- 如何在复杂继承中访问静态成员变量
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 继承/多态性 - 我是否被迫使用"protected"变量?
- 继承类中的 C++ 成员变量类型重写
- 对象成员变量还是继承
- 继承构造函数和其他变量的解决方法
- std::exception :使用虚函数和继承与变量
- 如何解决多次继承的不明确变量名称?
- 是否可以在不修改父类的情况下将成员变量初始化推迟到继承的类?
- 为什么继承的函数会更改基类中的成员变量,而不是与名为它的对象同名的对象
- 继承变量不可访问
- C++:使用父类运算符函数更新子类对象的继承变量
- 如何在 Visual Studio 中的窗体之间继承变量,C++
- 类的继承变量和自己的变量之间的差异
- c++类继承变量