`
wangminshe89
  • 浏览: 690728 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

原因2:两个类相互include

解决:

1.include 头文件重复加载

在include之前添加

1 #pragma once

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

原因2:两个类相互include

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

在头文件最上方写:

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

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

文件最后写:

#endif

两个类之间互相引用:


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

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



分享到:
评论

相关推荐

    在Qt平台C++和Java代码的交互

    总结来说,Qt平台上的C++与Java代码交互涉及到JNI接口的使用,包括C++函数的声明、Java方法的调用、动态库的加载以及在Qt项目中的整合。熟练掌握这些技巧,将有助于开发跨语言的复杂应用程序。在实践中,应不断学习...

    C++/QT 使用RabbitMQ

    在IT行业中,C++、QT和RabbitMQ是三个重要的技术领域。C++是一种高效、通用的编程语言,广泛应用于系统软件、游戏开发、嵌入式系统等;QT则是一个跨平台的C++图形用户界面应用程序开发框架,常用于创建桌面和移动...

    基于C++的QT小代码

    在C++中使用QT,首先需要包含必要的头文件,如`#include <QApplication>`和`#include <QWidget>`。`QApplication`是QT中的核心类,负责管理应用程序的事件循环和窗口系统,而`QWidget`则是所有GUI对象的基类,用于...

    qt调用JAVA文件示例

    4. **在C++中调用Java方法**:在QT项目的C++代码中,包含生成的JNI头文件,并使用QAndroidJniObject调用Java方法。下面是一个简单的例子: ```cpp #include #include #include "MyJavaClass.h" void ...

    用JNI写的Hello world程序

    使用`javah`工具(在JDK的bin目录下)从编译后的`.class`文件生成对应的C/C++头文件,例如: ``` javah -jni HelloWorld ``` 这将生成一个`HelloWorld.h`头文件,其中包含了Java native方法的C/C++原型。 3. *...

    halcon c++ QT 联合编程 计算面积

    接下来,定义一个函数用于加载图像、执行图像处理操作并计算面积。 ```cpp #include #include class HalconAreaCalculator { public: int calculateArea(const QImage &image) { // 初始化Halcon环境 HSystem...

    OpenCV配置(Qt环境)

    然后,在窗口类中,定义一个成员变量来存储图像,并添加一个函数来加载和显示图像: ```cpp class MyWindow : public QWidget { Q_OBJECT public: MyWindow(QWidget *parent = nullptr) : QWidget(parent) { ...

    Qt6 QCustomPlot 兼容头文件

    标题"Qt6 QCustomPlot 兼容头文件"暗示了我们将讨论如何在Qt6环境中使用QCustomPlot库,并确保其兼容性。QCustomPlot库并不是Qt官方的一部分,因此可能需要一些额外的步骤来集成到Qt6项目中。`qcustomplot.h`是...

    Qt on Android调用Jar包

    这个头文件定义了Java类的C++接口。 ```bash javah -jni com.example.SimpleCustomEvent ``` 这会产生一个`com_example_SimpleCustomEvent.h`的头文件,包含`callJarFunction`的声明。 步骤3:实现C++函数 在`...

    Logqt4-demo.zip

    首先,Log4Qt是一个基于Apache Log4j概念的C++日志框架,适用于Qt应用程序。它提供了灵活的日志级别设置,支持多种输出方式,如控制台、文件、网络等,同时具备良好的可扩展性。在使用Log4Qt之前,确保已安装Qt ...

    Qt4编写简单的计算器

    Qt4 编写简单的计算器 在本实验中,我们将使用 Qt4 框架编写一个简单的计算器程序。这个程序将包括一个基本的计算器界面,能够进行简单的四则运算和清屏操作。 实验目的 1. 熟悉 QtCreator 的简单操作。 2. 了解 ...

    Qt串口12313123123,qt串口通信,C,C++

    在本文中,我们将深入探讨基于Qt的串口通信技术,特别是在C++环境下如何利用Qt库进行串口操作和协议解析。Qt是一个强大的跨平台应用程序开发框架,它为开发者提供了丰富的功能,包括图形用户界面设计、网络通信以及...

    Qt使用Poppler-qt5操作PDF文件

    Qt是一个跨平台的C++图形用户界面工具包,广泛用于开发桌面、移动和嵌入式应用。 首先,让我们安装Poppler-qt5。在Ubuntu或Debian系统中,可以使用以下命令进行安装: ```bash sudo apt-get install libpoppler-qt...

    Qt C++静态库编写和调用示例

    在本文中,我们将深入探讨如何在Qt环境中使用C++创建和使用静态库。Qt是一个流行的开源框架,广泛用于开发跨平台的桌面和移动应用程序。在某些情况下,将代码组织为静态库可以提高代码重用性,减少依赖性,并简化...

    改变颜色的头文件

    在编程领域,头文件(Header Files)扮演着至关重要的角色,它们主要包含了函数声明、类定义、宏定义等,用于组织和共享代码。在给定的"改变颜色的头文件"中,我们可以推测这个头文件可能包含了一些用于修改界面元素...

    utuntu下用QT串口操作

    在Ubuntu操作系统中,Qt是一个非常强大的C++图形用户界面应用程序开发框架,广泛应用于桌面和移动平台。使用Qt进行串口操作可以实现与硬件设备的通信,例如读取传感器数据、控制电子设备等。本文将详细介绍如何在...

    【QT】类前置声明 - sunriver2000的专栏 - CSDN博客1

    使用类前置声明的主要原因在于,如果我们直接在头文件中包含类的完整定义(通过`#include`),可能会导致以下问题: 1. **循环依赖**:当两个或多个头文件相互包含时,可能导致编译错误。前置声明可以避免这种问题...

    Qt Android 调用JAVA

    在Android平台上,Qt提供了一种跨平台的开发框架,允许开发者使用C++和Qt库创建原生应用。然而,有时我们需要利用Android独有的功能,比如访问系统API或使用已有的Java库,这时就需要在Qt中调用Java代码。本文将详细...

    用C++,QT画分形图

    3. **添加头文件和源代码**:在项目的`main.cpp`文件中,引入必要的QT库,例如`QApplication`和`QWidget`,并创建一个继承自`QWidget`的自定义类。这个类将负责绘制分形图。 ```cpp #include #include #include ...

    qt调用zlib实例

    在IT行业中,Qt是一个流行的C++跨平台应用开发框架,而Zlib则是一个广泛使用的开源数据压缩库。本文将深入探讨如何在Qt项目中调用Zlib库进行数据压缩和解压缩操作,以实现高效的文件处理功能。 首先,我们需要了解...

Global site tag (gtag.js) - Google Analytics