“class”类型重定义,include(头文件)重复加载 QT /c++
2013-11-13 19:29
477 查看
提示报错:"class”类型重定义
原因1:include 头文件重复加载
原因2:两个类相互include
解决:
1.include 头文件重复加载
在include之前添加
意思是只include一次就可以了。
原因2:两个类相互include
系统那些头文件,无论怎么include都没事,因为一般都用了宏定义,防止重复。
在头文件最上方写:
#ifndef AA (一个名字,尽量做到唯一)
#define AA(跟上边的名字一样)
文件最后写:
#endif
两个类之间互相引用:
[cpp]
view plaincopyprint?
A.H: class A{ B* b; } B.H: class B{ A* b; }
就这样互相include后,肯定会出错。
需要在各自的声明前边,加上对方的声明,变成:
[cpp]
view plaincopyprint?
A.H:
class B;
class A{
B* b;
}
B.H:
class A;
class B{
A* b;
}
原因1:include 头文件重复加载
原因2:两个类相互include
解决:
1.include 头文件重复加载
在include之前添加
1 | #pragma once |
原因2:两个类相互include
系统那些头文件,无论怎么include都没事,因为一般都用了宏定义,防止重复。
在头文件最上方写:
#ifndef AA (一个名字,尽量做到唯一)
#define AA(跟上边的名字一样)
文件最后写:
#endif
两个类之间互相引用:
[cpp]
view plaincopyprint?
A.H: class A{ B* b; } B.H: class B{ A* b; }
A.H: class A{ B* b; } B.H: class B{ A* b; }
就这样互相include后,肯定会出错。
需要在各自的声明前边,加上对方的声明,变成:
[cpp]
view plaincopyprint?
A.H:
class B;
class A{
B* b;
}
B.H:
class A;
class B{
A* b;
}
相关文章推荐
- “class”类型重定义,include(头文件)重复加载 QT /c++
- “class”类型重定义 || 防止头文件重复加载 || 两个类之间互相引用
- “class”类型重定义 || 防止头文件重复加载 || 两个类之间互相引用
- “class”类型重定义 || 防止头文件重复加载 || 两个类之间互相引用
- class”类型重定义 || 防止头文件重复加载 || 两个类之间互相引用
- C++ 中头文件重复定义的问题
- C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间
- C++ 关于声明,定义,类的定义,头文件作用,防止头文件在同一个编译单元重复引用,不具名空间
- C++ 文件include规则 常量定义
- c++ 头文件包含问题-include&class
- C++中可以用struct和class来定义类型,这两种类型有什么区别
- C++多个头文件重复定义变量问题
- 头文件重复定义(error C2011:ClassType Redefinition)的解决方法
- C++ 解析什么叫“class”类型重定义还有解决方法
- C++ 关于声明,定义,类的定义,头文件作用,防止头文件在同一个编译单元重复引用,不具名空间
- C++头文件包含问题-Include和class **
- 在C/C++项目的开发中,防止头文件被重复加载的措施
- C++ 关于声明,定义,类的定义,头文件作用,防止头文件在同一个编译单元重复引用,不具名空间
- 解决在头文件加入#include"winsock2.h"后出现重复定义的办法
- 转 c++ 中头文件重复定义的问题