我正在嘗試C++中的繼承的簡單示例。但我無法理解它。當我試圖獲得從類A
繼承的類B
的受保護成員時,它表示A::baz
受保護。公共/受保護/私有繼承問題
#include <iostream>
class A {
public:
int foo;
int bar;
protected:
int baz;
int buzz;
private:
int privfoo;
int privbar;
};
class B : protected A {}; // protected members go to class B, right?
int main() {
B b;
b.baz; // here is the error [A::baz is protected]
}
我似乎無法找到我做錯了什麼。我試過將class B : protected A
更改爲: public A
,但它仍然不起作用。
它很少使用公共繼承以外的任何東西。 – 2012-08-16 18:04:00
http://www.parashift.com/c++-faq/access-rules-with-priv-inherit.html – Derek 2012-08-16 18:05:45