“class”类型重定义,include(头文件)重复加载 QT /c++

来源:互联网 发布:c语言入门很简单pdf 编辑:程序博客网 时间:2024/04/30 02:19

提示报错:"class”类型重定义

原因1:include 头文件重复加载

原因2:两个类相互include

解决:

1.include 头文件重复加载

在include之前添加

1#pragma once

意思是只include一次就可以了。

原因2:两个类相互include

系统那些头文件,无论怎么include都没事,因为一般都用了宏定义,防止重复。

在头文件最上方写:

#ifndef  AA (一个名字,尽量做到唯一)

#define AA(跟上边的名字一样)

文件最后写:

#endif

两个类之间互相引用:

A.H:class A{B* b;}B.H:class B{A* b;}

就这样互相include后,肯定会出错。

需要在各自的声明前边,加上对方的声明,变成:

A.H:class B;class A{B* b;}B.H:class A;class B{A* b;}