作者ric2k1 (Ric)
看板EE_DSnP
標題[討論] 在 class A 裏面使用 class A ?
時間Tue Oct 30 19:11:45 2007
以下是 OK 的...
class A
{
public:
void f(A a) { ... a._privateData; ... a._privateFunction(); ... }
private:
void g(A a) { ... a._privateData; ... a._privateFunction(); ... }
};
以下是不 OK 的...
// 到這行 class B 還沒定義完全
class A
{
public:
void f(B b1); // B 定義不完全
B _b2; // B 定義不完全
A _d1; // A 不能包 A
private:
void g(B b3); // B 定義不完全
B _b4; // B 定義不完全
A _d2; // 宣告成 private 也不能包 A
};
----
總而言之,
class A 的 member function 可以拿 A 的物件當作參數,
而且可以直接 access 他所有的 public and private data and functions.
而 class A 裏面不可以用 A 的 object 當作 data member,
或是其他尚未定義清楚的 class 的 object 也不可以.
(除非是 pointer 或是 reference type)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.241
1F:推 Knossos:最後一行的那兩個方式...可以請哪位大大給個例子嗎?3Q 10/30 21:30
2F:推 flarehunter:像是linked list 要有一個指向下個節點的pointer嗎? 10/30 21:52