C++ 私有变量继承
我对私有变量是如何继承的感到困惑,当我试图在继承的类中使用它们时,我会错误地告诉我的变量是私有的 一个简单的例子 比如说:C++ 私有变量继承,c++,variables,inheritance,private,C++,Variables,Inheritance,Private,我对私有变量是如何继承的感到困惑,当我试图在继承的类中使用它们时,我会错误地告诉我的变量是私有的 一个简单的例子 比如说: //dog.h class dog { private: bool fluffy; public: ... }; 让我们说: //dog.cpp #include "dog.h" ... 现在: 以及: 如果我尝试使用groom函数,会出现如下错误: error: 'bool dog::fluffy' is private 我做错了什么? 可选:将来设
//dog.h
class dog
{
private:
bool fluffy;
public:
...
};
让我们说:
//dog.cpp
#include "dog.h"
...
现在:
以及:
如果我尝试使用groom函数,会出现如下错误:
error: 'bool dog::fluffy' is private
我做错了什么?
可选:将来设计此解决方案的最佳方法是什么?最重要的继承规则是: 除了同一类的成员之外,任何地方都无法访问该类的私有成员。 此外,在私人继承方面: 基类的所有公共成员都成为派生类的私有成员&
基类的所有受保护成员都成为派生类的私有成员 读得好:
子类无法访问超类
private
变量-这就是它们private
的原因。你需要让它们受到保护,才能做你想做的事+1用于从狗中派生shepherd。@WillyGoat:添加了我先前答案的链接,以便您理解访问说明符和继承。一旦你读了它,你就能更好地理解它们,并自己决定需要使用什么。
//shepard.cpp
#include "shepard.h"
void shepard::groom()
{
fluffy = false;
}
error: 'bool dog::fluffy' is private