4
A
回答
15
你預先聲明瞭這個類沒有包含它。例如:
//#include "Foo.h" // including Foo.h causes circular reference
class Foo;
class Bar
{
...
};
-2
如果您有#ifndef警衛,則不會獲得循環的頭文件引用。這纔是重點。
正向引用用於避免僅由指針或引用使用的對象的#include(ing)頭文件。然而,在這種情況下,你並沒有解決循環引用問題,你只是練習良好的設計,並將.h文件從它不需要知道的細節中解耦出來。
1
我相信你所說的正確術語是「前向聲明」。 「正向引用」會有點混淆。
相關問題
- 1. C++中的正向聲明類
- 2. 正向聲明
- 3. 正向聲明
- 4. C++正向聲明使用指令
- 5. C中的前向聲明?
- 6. C++中的前向聲明
- 7. 如何在C++ cli中正確使用正向聲明的類?
- 8. 正向聲明typdef
- 9. C++ const引用聲明
- 10. C++:「外部引用」聲明
- 11. C++錯誤:正向聲明'struct ...?
- 12. 正向聲明靜態函數C++
- 13. 正向聲明在C++中定義的枚舉C
- 14. 聲明block typedef的前向引用?
- 15. 聲明或不聲明在目標c
- 16. 正向聲明類的解引用對象
- 17. C++中的typedef的前向聲明
- 18. 正向聲明問題
- 19. 正向聲明和shared_ptr
- 20. 正向類friend聲明
- 21. 正向聲明和typeid
- 22. 正向聲明opengl類型
- 23. 正向聲明'struct bb',類
- 24. 正向聲明cv :: Mat
- 25. 正向聲明一個typedef
- 26. 正向聲明和繼承
- 27. 正向聲明問題
- 28. 的typedef與向前聲明stuct用C
- 29. C++中的前向聲明錯誤
- 30. C++中的向量聲明類型
在這種情況下還需要注意:類Bar不能包含類Foo,但它可以有指向類Foo的指針。 – KPexEA 2008-10-08 18:12:08
另請注意,函數的正式返回類型可以是前向聲明類型。 – QBziZ 2008-10-08 18:14:17