error: invalid use of incomplete type 'XXXX' ;error: forward declaration of 'XXXX' 声明改为包含头文件

本文解决了一个关于类XXXX声明引发的编译错误问题。通过将前向声明更改为包含相应的头文件,有效地解决了invalid use of incomplete type及forward declaration的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

error: invalid use of incomplete type 'XXXX'  

error: forward declaration of XXXX


声明改为包含头文件


class XXXX;

  

  

#include "XXXX.h"




D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:12: error: invalid use of incomplete type 'class Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp: In constructor 'kaddmanage::kaddmanage(QWidget*)': D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:12:71: error: invalid use of incomplete type 'class Ui::kaddmanage' 12 | kaddmanage::kaddmanage(QWidget *parent) : QDialog(parent), ui(new Ui::kaddmanage) { | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:2: In file included from D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:2: In file included from D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:2: D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.h:10:22: note: forward declaration of 'class Ui::kaddmanage' 10 | namespace Ui { class kaddmanage; } | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:13: error: invalid use of incomplete type 'class Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:13:7: error: invalid use of incomplete type 'class Ui::kaddmanage' 13 | ui->setupUi(this); | ^~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.h:10:22: note: forward declaration of 'class Ui::kaddmanage' 10 | namespace Ui { class kaddmanage; } | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:19: warning: possible problem detected in invocation of 'operator delete' [-Wdelete-incomplete] D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp: In destructor 'virtual kaddmanage::~kaddmanage()': D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:19:5: warning: possible problem detected in invocation of 'operator delete' [-Wdelete-incomplete] 19 | delete ui; | ^~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:19: warning: invalid use of incomplete type 'class Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:19:12: warning: invalid use of incomplete type 'class Ui::kaddmanage' 19 | delete ui; | ^~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.h:10:22: note: forward declaration of 'class Ui::kaddmanage' 10 | namespace Ui { class kaddmanage; } | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:19:5: note: neither the destructor nor the class-specific 'operator delete' will be called, even if they are declared when the class is defined 19 | delete ui; | ^~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:24: error: invalid use of incomplete type 'class Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp: In member function 'void kaddmanage::on_btn_save_clicked()': D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:24:22: error: invalid use of incomplete type 'class Ui::kaddmanage' 24 | QString name = ui->le_name->text().trimmed(); | ^~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.h:10:22: note: forward declaration of 'class Ui::kaddmanage' 10 | namespace Ui { class kaddmanage; } | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:25: error: invalid use of incomplete type 'class Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:25:21: error: invalid use of incomplete type 'class Ui::kaddmanage' 25 | int classId = ui->cb_class->currentData().toInt(); | ^~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.h:10:22: note: forward declaration of 'class Ui::kaddmanage' 10 | namespace Ui { class kaddmanage; } | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:26: error: invalid use of incomplete type 'class Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:26:24: error: invalid use of incomplete type 'class Ui::kaddmanage' 26 | QString status = ui->cb_status->currentText(); | ^~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.h:10:22: note: forward declaration of 'class Ui::kaddmanage' 10 | namespace Ui { class kaddmanage; } | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:53: error: invalid use of incomplete type 'class Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp: In member function 'void kaddmanage::on_btn_import_clicked()': D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:53:26: error: invalid use of incomplete type 'class Ui::kaddmanage' 53 | QString filePath = ui->le_filePath->text(); | ^~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.h:10:22: note: forward declaration of 'class Ui::kaddmanage' 10 | namespace Ui { class kaddmanage; } | ^~~~~~~~~~ D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:106: error: 'class service::DatabaseManager' has no member named 'lastError'; did you mean 'QString service::DatabaseManager::m_lastError'? (not accessible from this context) D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:106:100: error: 'class service::DatabaseManager' has no member named 'lastError'; did you mean 'QString service::DatabaseManager::m_lastError'? (not accessible from this context) 106 | failMsg += QString("行%1:数据库错误 - %2\n").arg(successCount + failCount + 1).arg(db.lastError()); | ^~~~~~~~~ D:\QT_PROGRAM\LabNexus\pch.h:27: In file included from D:/QT_PROGRAM/LabNexus/pch.h:27, In file included from D:/QT_PROGRAM/LabNexus/pch.h:27, from D:/QT_PROGRAM/LabNexus/build/Desktop_Qt_6_8_2_MinGW_64_bit-Debug/CMakeFiles/LabNexus.dir/cmake_pch.hxx:5, from <command-line>: D:/QT_PROGRAM/LabNexus/service/database/databaseManager.h:98:17: note: declared private here 98 | QString m_lastError; // 最后一次错误信息 | ^~~~~~~~~~~ mingw32-make.exe[2]:-1: *** [CMakeFiles\LabNexus.dir\build.make:242: CMakeFiles/LabNexus.dir/view/equipmentManage/kaddmanage.cpp.obj] Error 1 mingw32-make.exe[1]:-1: *** [CMakeFiles\Makefile2:114: CMakeFiles/LabNexus.dir/all] Error 2 mingw32-make.exe:-1: *** [Makefile:100: all] Error 2 D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:12: error: Allocation of incomplete type 'Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:13: error: Member access into incomplete type 'Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:19: warning: Deleting pointer to incomplete type 'Ui::kaddmanage' is incompatible with C++2c and may cause undefined behavior D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:24: error: Member access into incomplete type 'Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:25: error: Member access into incomplete type 'Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:26: error: Member access into incomplete type 'Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:53: error: Member access into incomplete type 'Ui::kaddmanage' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:106: error: No member named 'lastError' in 'service::DatabaseManager' D:\QT_PROGRAM\LabNexus\view\equipmentManage\kaddmanage.cpp:3: warning: Included header ui_kaddmanage.h is not used directly (fix available) https://clangd.llvm.org/guides/include-cleaner 针对以上报错给出解释和可能解决方案
最新发布
07-11
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值