vs error C2143编译错误
该问题的官方解释:微软官方解释
但是,我在官网的例子上没有找到我所遇见的问题!
在此记录一下,问题代码如下:
class testA1;
class workclass
{
public:
explicit workclass();
virtual ~workclass();
private:
int M_INT;
testA* ptmp;
}
单独看这一块,一眼就能看出问题是没有声明改变量testA。这样编译时会报错,但是报错的内容是这样的
error C2143: 语法错误: 缺少“;”(在“*”的前面)。在代码较多的情况下,就变得难以查找问题所在。明明有些";",这个符号。
解决方案:
testA在使用时没有包含头文件的情况下进行类的声明即可。
正确代码示例
class testA;
class testA1;
class workclass
{
public:
explicit workclass();
virtual ~workclass();
private:
int M_INT;
testA* ptmp;
}