私有变量继承

Private Variable Inheritance

本文关键字:继承 变量      更新时间:2023-10-16

我对私有变量是如何继承的感到困惑,当我试图在继承的类中使用它们时,我会收到错误,告诉我的变量是私有的。

一个赤裸裸的例子。

比方说:

//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

我做错了什么?可选:将来设计此解决方案的最佳方式是什么?

继承最重要的规则是:

除了同一类的成员之外,任何地方都无法访问类的私有成员

进一步的私人继承:

基类的所有公共成员都成为派生类的私有成员&
基类的所有受保护成员都成为派生类的私有成员

阅读良好:
什么是访问说明符?我应该与私人继承、受保护继承还是公开继承?