1. 類別可以定義在另一個類別之中,這樣的類別稱之為巢狀類別或內部類別,內部類別只被外部包裹的類別所見,當某個Slave類別完全只服務於一個 Master類別時,您可以將之設定為內部類別,如此使用Master類別的人就不用知道Slave的存在。 一個巢狀類別通常宣告在"private"區域,也可以宣告在"protected"或"public"區域,一個宣告的例子如下:
class OuterClass {
private: class InnerClass { // .... }; }; |
2.
在巢狀類別結構中,外部類別不能存取內部類別的私用成員,如果想要存取內部類別的私用成員的話,必須宣告外部類別為friend,例如:
class PointDemo {
...
private: // Nested Class
class Point {
friend class PointDemo;
....
};
....
};
...
private: // Nested Class
class Point {
friend class PointDemo;
....
};
....
};
同樣的,內部類別不可存取外部類別的私用成員,如果要存取私用成員的話,必須宣告其為friend,例如:
class PointDemo {
public:
...
friend class Point;
private:
// Nested Class
class Point {
....
};
....
};
public:
...
friend class Point;
private:
// Nested Class
class Point {
....
};
....
};
沒有留言:
張貼留言