C++头文件的重复引用
就有点类似于钻石继承(菱形继承) 比如有 a.h b.h c.h和d.h四个头文件 其中,b和c需要#include"a.h" 而d需要#include"b.h" #include"c.h" 这样编译的时候肯定会报错,因为d包含了两次a.h.
C++工程的预编译就是将引用文件的代码拷贝过来,就如上面所说:在预编译的时候,d.h的文件,会将b,c文件的代码拷贝过来,但是,b,c文件都引用了a文件,这样,理论上,d文件中就会包含两份a文件的代码,这样,在编译的时候就会报错,因此我们需要使用#ifndef #end if 机制来避免这种情况的发生。
#ifndef QTAPP_H
#define QTAPP_H
/*
类体
*/
#endif // QTAPP_H
注意最后的#endif 这个不要丢,不然会出现问题,另外在所有的类中尽量都用这种方式来避免文件的重复引用
注意 要大写!!!!!!!!!