在巢狀類別結構中,外部類別不能存取內部類別的私用成員,如果想要存取內部類別的私用成員的話,必須宣告外部類別為friend,例如:
class PointDemo {
...
private:
// Nested Class
class Point {
friend class PointDemo;
....
};
....
};
同樣的,內部類別不可存取外部類別的私用成員,如果要存取私用成員的話,必須宣告其為friend,例如:
class PointDemo {
public:
...
friend class Point;
private:
// Nested Class
class Point {
....
};
....
};
======================================
在coding時,可以將內部類別獨立定義在一個檔案中,例如:
file: PointDemo.h
class PointDemo {
public:
PointDemo(int);
~PointDemo();
void show();
private:
// Nested Class
class Point;
Point **_points;
int _length;
};
file: Point.h
class PointDemo::Point {
public:
Point();
Point(int, int);
int x() { return _x; }
int y() { return _y; }
void x(int x) { _x = x; }
void y(int y) { _y = y; }
private:
int _x;
int _y;
};
沒有留言:
張貼留言