作者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