最近自己在写代码的时候,也遇到这个问题,最后通过这个文章解决了,感谢!
'class' type redefinition 解决方案 这个错误提示是说类重复定义了,下面举例说明一下怎么解决. 先建立一个Win32应用程序的空工程,再 建立所下面需要的文件: //ds.h class ds //ds.cpp #include <iostream.h> //dc.h #include "ds.h" //dc.cpp #include <iostream.h> void dc::dccreate() //main.cpp #include <iostream.h> void main() 通过编译, 系统就会提示: error C2011: 'class' type redefinition, 解决方法: 把文件改一下, 如: //ds.h #ifndef DS_S_S class ds //dc.h #include "ds.h" class dc:public ds 再编译就没问题了,在这里DS_S_S和DC_C_C其实都没有什么实际的意义和应用,只是我们运用预编译来解决类的重复定义时所采取的一种方法,特别是在比较大的类比较多的工程中,当然在这里DS_S_S和DC_C_C都可以改用其他变量代替,是不影响程序的,但是由于我们所编的程序有时要和其他人的程序进行接合,那么这个取名方法就有意义了,因为它要避免两个人定义的这些变量不能相同.
#pragma once 是编译器只对这个有#pragma once的头文件处理一次, 跟
1. #pragma once ... #endif |