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

Posted zwj-199306231519

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC error C2143: 语法错误 : 缺少“;”(在“*”的前面)相关的知识,希望对你有一定的参考价值。

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: 语法错误 : 缺少“;”(在“*”的前面)的主要内容,如果未能解决你的问题,请参考以下文章

C语言 error C2143: 语法错误 : 缺少“;”(在“类型”的前面)?

error C2143: 语法错误 : 缺少“;”(在“return”的前面)是怎么回事?

VS编译错误:error C2143: 语法错误 : 缺少“;”(在“类型”的前面)

error C2143: syntax error : missi 是啥错误?

未声明的标识符 error c2065 c2143

error C2143: syntax error : missing ')' before 'constant'是啥意思