如果某个头文件被多次包含,则在VC编译器中编译,会抛出“重复定义”错误。
为了避免同一个文件被重复包含多次,C++提出了2种解决方案。
1、#ifndef _SOME_FILE_H
#define _SOME_FILE_H
……
……
#endif //在文件末端
2、#pragma one
……
……
#ifndef、#define、#endif是C++语言中的宏定义,通过宏定义来避免文件多次编译。即所有支持C++编译器的都支持它。但是#pragma one是编译相关的,不是每一个编译系统都支持,移植性相对差一点。不过,现在基本上每个编译器都有这个定义了。