我已经成功地为程序添加了一个动态库,但是当我尝试在项目的第二个文件中包含头文件时,我得到有关类重新声明的错误。如果这还不够,我会添加更多信息不能在多个文件中包含动态库头文件?
回答
您需要将警卫放入您的标题中,以免它多次包含在内。对于文件“my.h”,你可以沿的线条添加的东西:
#ifndef MY_H
#define MY_H
// Header declarations here
#endif
这种方式,您可以包括.h文件多次,但它只会被列入第一次。
#include将用文件内容替换#include语句;因此具有相同文件的多个#include将多次重新定义元素。典型的方式是一种保护措施,如:
/* file foo .h */
#ifndef _FOO_H
#define _FOO_H
/* content */
#endif
thx;)现在我明白了为什么它放在任何地方。 – 2009-11-11 01:44:12
对此回答的小预订: IIRC“领先的核心代码+主要的大写字母”名称仅用于符号名称而非宏。但对于一致性,我会说不要使用宏的前导下划线。在我的店里,我们去了“Foo_h_included_”的表格。与任何东西发生冲突的Chnaces都很小。 – 2009-11-11 01:48:42
因此,您不需要添加_included的前导下划线,并遵循这种情况? – 2009-11-11 01:54:57
- 1. 不能包含头文件?
- 2. 不能包含头文件
- 3. 不能包含在CPP文件头
- 4. 包含在多个.cpp文件中的头文件
- 5. 包含在头文件中
- 6. 包含在头文件中
- 7. php不能包含多个文件
- 8. 在Python中动态导入包含多个文件的包
- 9. 不能包含NDK头文件
- 10. 我不能包含NTDDk头文件!
- 11. XCode4不能包含头文件<>
- 12. Visual Studio不能包含头文件。
- 13. 在另一个头文件中包含头文件
- 14. 不能在项目文件中包含OpenBR库文件
- 15. 在附加头文件中包含头文件包括路径
- 16. 包含头文件
- 17. 不能编译MOC文件:头文件不包含<QObject>
- 18. 如何在头文件中包含依赖项而不将其包含在包含头文件的项目中
- 19. 动态包含类文件
- 20. Perl包含动态文件
- 21. 在每个源文件中包含一个头文件
- 22. 在其他头文件中包含头文件中的类
- 23. Android NDK - 在不同的头文件中包含一个C++头文件?
- 24. 创建一个包含仅包含头文件的库的Makefile
- 25. 头文件C++的多个包含文件
- 26. 文件包含头文件而不是文件名可能在C?
- 27. 不能包含来自boost库的头文件
- 28. 在每个源文件中包含头文件(Objective-C)
- 29. 在C#文件中包含一个C++头文件
- 30. 包含JavaScript文件在jsp从另一个JavaScript文件动态
THX很多:D难道我只是需要把页眉或做我需要把整个文件或全班 – 2009-11-11 01:51:28
所有的头文件的内容会里ifdef。这包括你的类定义,但不包括你的方法定义。 – dj2 2009-11-11 01:52:55
@ dj2:为什么不是方法定义? – 2009-11-11 04:15:32