2009-11-11 77 views

回答

5

您需要将警卫放入您的标题中,以免它多次包含在内。对于文件“my.h”,你可以沿的线条添加的东西:

#ifndef MY_H 
#define MY_H 

// Header declarations here 

#endif 

这种方式,您可以包括.h文件多次,但它只会被列入第一次。

+0

THX很多:D难道我只是需要把页眉或做我需要把整个文件或全班 – 2009-11-11 01:51:28

+0

所有的头文件的内容会里ifdef。这包括你的类定义,但不包括你的方法定义。 – dj2 2009-11-11 01:52:55

+1

@ dj2:为什么不是方法定义? – 2009-11-11 04:15:32

4

#include将用文件内容替换#include语句;因此具有相同文件的多个#include将多次重新定义元素。典型的方式是一种保护措施,如:

/* file foo .h */ 
#ifndef _FOO_H 
#define _FOO_H 

/* content */ 

#endif 
+0

thx;)现在我明白了为什么它放在任何地方。 – 2009-11-11 01:44:12

+3

对此回答的小预订: IIRC“领先的核心代码+主要的大写字母”名称仅用于符号名称而非宏。但对于一致性,我会说不要使用宏的前导下划线。在我的店里,我们去了“Foo_h_included_”的表格。与任何东西发生冲突的Chnaces都很小。 – 2009-11-11 01:48:42

+0

因此,您不需要添加_included的前导下划线,并遵循这种情况? – 2009-11-11 01:54:57