struct a : public b {
int foo_bar() {...;}
};
C++ 中的 struct 與在C語言中的struct不同
差別在於對於所繼承的類別預設存取權限的不同
struct 是 public
class 是 private
感謝秉宏大大提供正解
Reference:C++中的struct專題研究
在C++ primer一書中也有相當清楚的講解
2.8 使用關鍵字 struct P.66:
C++ 支援的另一個關鍵字也可以用來定義class型別。
...
以關鍵字class或struct定義出來的class,彼此之間唯一的差異是其預設存取層級:
struct的預設層級是public,class的預設層級是private。
15.2.5 繼承保護類別(Default Inheritance Protection Level) P.574:
如果你認為「以關鍵字struct定義」和「以關鍵字class定義」的classes另有更深層的差異,
不對,唯一差異就是成員的預設保護級別,以及衍生動作的預設保護級別。
沒有留言:
張貼留言