C++&&QT调试时出现的一些错误

 

错误

原因

解决

1

 error C2533: GDQEditPolygonFrm::{ctor}: 构造函数不能有返回类型

头文件里定义完类后,在大括号外没分号

加分号

2

connect方法,没有与slot方法绑定

1.对于继承的类,容易忽略Q_OBJECT的增加
2.
信号与槽函数形参写错了,不需要有形参,只要类型就行。

 

3

error C3867: GDQPolygonEditForSectionFrm::setMngUi: 函数调用缺少参数列表;请使用“&GDQPolygonEditForSectionFrm::setMngUi”创建指向成员的指针

setMngUi函数调用没有加括号。

 

4

 error C2143: 语法错误 : 缺少“;(在“*”的前面)

没有增加头文件,或没有增加正确的头文件

检查定位错误的代码行定义变量的类型的头文件是否包含或是否包含正确。

5

error C2572: GDQEditPolygonFrm::GDQEditPolygonFrm: 重定义默认参数 : 参数 3;
参见“GDQEditPolygonFrm::GDQEditPolygonFrm”的声明

构造函数实现时,也把默认值赋值上了。

注释掉定义的构造函数的默认赋值

6

严重的中断错误(数据库);

1.未关闭的情况下,重复打开同一个数据库;
2.
数据库用完没有关闭。

检查数据库存的使用与关闭

7

3>GDQPolygonEditForLoftingFrm.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall GDQPolygonModifyEDOSelectState::GDQPolygonModifyEDOSelectState(class GDQPolygonEditor *)" (??0GDQPolygonModifyEDOSelectState@@QAE@PAVGDQPolygonEditor@@@Z),该符号在函数 "private: void __thiscall GDQPolygonEditForLoftingFrm::setDefaultState(void)" (?setDefaultState@GDQPolygonEditForLoftingFrm@@AAEXXZ) 被引用

文件GDQPolygonModifyEDOSelectState没有增加入来。
技巧:
关键字“引用”, “外部符号”

加入相应的头文件。

8

 …………LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall……

moc文件有些时候在文件打入到VS的时候没有生成,会提示三个在Q_OBJECT里面的函数找不到的连接的外部错误,可是在编译时是没有错的。

在头文件编辑一下,保存,VS会自动重新生成moc文件。

你可能感兴趣的:(C++)