Java 的 field 和 method 有分為四種 access level:
public、protected、private 和 defalut (不加修釋字)
- public:自己的 class,繼承自己的子 class 和其他所有的 class 都可以 access 。
- protected:只有自己的 class 和 繼承自己的子 class 可以 access。
- private:只有自己可以 access 。
- defalut (不加修釋字):同一個 package 下不同的 class 可以 access
*這裡只討論 C++,不討論 C,C 中的 struct 和 C++ 中的 struct 有極大的不同。
C++ 的 struct / class 其 member 的access level 有分為 public、protected 和 private。
- public:自己的 class,繼承自己的子 class 和其他所有的 class 都可以 access 。
- protected:只有自己的 class 和繼承自己的子 class 可以access。
其中 struct 和 class 有幾點不同要注意的:
- 不加修飾字時 struct 中的 member 預設的 access level 是 public。(為了與 C 相容)
- 不加修飾字時 class 中的 member 預設的 access level 是 private。
- 不加修飾字時 struct 的繼承預設是 public 繼承。
- 不加修飾字時 class 的繼承預設是 private
繼承。
除了以上幾點不同以外,C++ 中的 struct 基本上與 class 的特性是一樣的。