以前在学习C的时候,老师总是说,为了防止头文件被多次重复调用,一定要添加保护,一直以来编写的文件不多,没有进行复杂的多次调用,也没有出错,久而久之,竟忘了。前些天在做项目时,没有主意这个问题,结果嘛,你懂的。。
细心查找下来发现,我在类A的头文件中使用了 #include "B.h”, 同时又在类C的头文件中再次使用#include "B.h”,这样就会出现“......error C2011: “XXX”:“class”类型重定义”
这样就造成 头文件B.h被多次编译。
解决方案一:
在头文件#include "B.h”上添加 “#pragma once”
解决方案二:
再定义B.h时,使用#ifndef, #define, #endif语句。