qt [error C3646: 未知重写说明符]错误的可能性

1.循环引用

在分离式编译中,我们往往习惯将不同的类或者函数分别写在不同的函数中,提高工作效率。但如果在使用时出现两个类分别在两个不同的文件中编写,并且相互引用,则会出现循环引用,引发此错误。

举例:one.h/one.cpp和two.h/two.cpp 在one.h中include two.h,并定义了一个two的object,然后在two.h中又include了one.h

解决方案:在报错的那个.h文件的类定义前加上class声明调用的类(即class 类)。

2.语法错误

此问题大多因为粗心而导致,比如在某个成员函数中把分号;写成了中文分号;,将会出现此类错误。

解决方案:修改分号

3.类的顺序错误

如果一个类的成员中包含另一个类,则被包含的类的生命一定要在包含的类之前。

举例:

class One{
    Two t;
}
class Two{
    int a;
}

解决方法:调整类的位置。

在遇到这种问题的时候,我们需要透过现象看本质。


通常我都是犯前者的错误,因为这个在java中是允许的....有些适应不过来..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值