MFC 调试代码出现“error C3646: 未知重写说明符”的解决方法

一般在调试代码出现“error C3646: 未知重写说明符”大致有三种原因引起的错误:

1、循环引用

       在模块化编程中对各个对象抽象化,并为各个对象编写独立的文件文件,那么在编程过程中各个对象可能出现相互引用的情况

这时候就特别容易出现“error C3646: 未知重写说明符”的情况。举个例子比如有三个文件分别A.h A.cpp,B.h B.cpp,C.h C.cpp,

A.h头文件包含#include "B.h",B.h头文件包含#include "C.h",C.h头文件包含#include "A.h"相互嵌套,并且相互定义如下所示:

那么这种情况在编译时就会出现“error C3646: 未知重写说明符”等问题并且还会附加其他很多的错误如下图所示:

解决方法:A.h,B.h,C.h头文件不互相包含,A.h头文件去除掉#include "B.h"改为在class A前面加一个class B;声明类B,B.h头文件去除掉#include "C.h"改为在class B前面加一个class C;声明类C,C.h头文件去除掉#include "A.h"改为在class C前面加一个class A;声明类A,如下图所示;

这样子即可解决“error C3646: 未知重写说明符”等问题

2、语法错误

某个成员函数中把分号;写成了中文分号;,将会出现此类错误。

解决方案:修改分号

3、类的顺序错误

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

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值