從我完成C++開始已經很長時間了,而且我正遇到一些引用對方的類的麻煩。如何聲明相互引用的類?
現在,我有這樣的事情:
啊
class a
{
public:
a();
bool skeletonfunc(b temp);
};
BH
class b
{
public:
b();
bool skeletonfunc(a temp);
};
由於每一個需要另外一個參考,我發現我做不到一個#包括在頂部彼此,或者我最終在與包括的怪異循環。
那麼我怎樣才能讓a
可以使用b
,反之亦然,而不會產生週期性的#include問題?
謝謝!
請確保您注意,您需要參考使用指針或引用任何前瞻性聲明的類型,本例所示(B&溫度)。 – 2010-03-23 20:56:18
不,原始聲明(帶有傳值語義)將被編譯。在方法定義之前,您需要完整的類聲明,但不要聲明方法簽名:'class a; void f(a); class a {}; void f(ax){...'參見http://stackoverflow.com/questions/389957/forward-declaration-of-a-base-class/390124#390124 – 2010-03-23 21:03:33
@大衛:我編輯得更加明確。 – 2010-03-23 21:11:23