码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-12-11 11:49:29      阅读:10      评论:0      收藏:0      [点我收藏+]

标签:href   语法   编译   使用   log   middle   com   gpo   tps   

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

error C2143: 语法错误 : 缺少“;”(在“*”的前面)
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

 

出现问题原因:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就会报这样的错误,如下:

//a.h  
#include "b.h"  
class A  
{  
....  
private:  
    B b;  
};
//b.h  
#include "a.h"  
class B  
{  
....  
private:  
    A a;  
};

一编译,就出现了一个互包含的问题了。

解决办法:此时用到类的前置声明,问题就解决了,如下:

//a.h   
//#include "b.h"  
class B;   
class A   
{  
 ....   
private:  
 B b;   
}; 
//b.h   
#include "a.h"   
class B  
{  
 ....   
private:  
 A a;   
};

 

 

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

标签:href   语法   编译   使用   log   middle   com   gpo   tps   

原文地址:https://www.cnblogs.com/zwj-199306231519/p/14095047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!