我很困惑如何私有變量被繼承,我得到的錯誤告訴我的變量是私有的,當我嘗試在繼承類中使用它們。私有變量繼承
一個簡單的例子。
比方說:
//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
我在做什麼錯? 可選:將來設計此解決方案的最佳方式是什麼?
子類不能訪問超類'私人'變量 - 這就是他們'私人'的原因。你需要讓他們「受保護」才能做你想做的事。不過,爲了從狗身上派生牧羊人+1。 – 2014-09-23 02:11:51