【发布时间】:2014-11-17 02:38:42
【问题描述】:
我对如何继承私有变量感到困惑,当我尝试在继承的类中使用它们时,我收到错误消息告诉我的变量是私有的。
一个简单的例子。
假设:
//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
我做错了什么? 可选:未来设计此解决方案的最佳方式是什么?
【问题讨论】:
-
子类无法访问超类
private变量 - 这就是它们的原因private。你需要让他们protected做你想做的事。不过,+1 表示从 dog 派生 shepherd。
标签: c++ variables inheritance private