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