error C2144: 语法错误:“int”的前面应有“;”

C++- error C2144 syntax error : ‘int’ should be preceded by ‘;’

注:我使用VS2010时,遇到的问题

解决办法

在某个.h文件里你自定义的某个类最后的“;”,你一定使用的是中文输入法下的“”,将它换为英文输入法,输入”;“。问题解决。

注意:
中文输入法下的“”和英文输入法下的“;”实在是太像了。

实例

错误程序

main.cpp

#include <iostream>
#include "helloworld.h"

int main(void)
{
    HelloWorld hello;
    hello.say();
    while(1){}
    return 0;
}

helloworld.h

#ifndef __HELLOWORLD_H_
#define __HELLOWORLD_H_

class HelloWorld{
public:
    HelloWorld(){}

    void say(){
        std::cout << "Hello World!" << std::endl;
    }
};
#endif

编译失败

1>  main.cpp : error C2144: 语法错误:“int”的前面应有“;”
1>
1>生成失败。

修改后正确的程序

修改helloworld.h

#ifndef __HELLOWORLD_H_
#define __HELLOWORLD_H_

class HelloWorld{
public:
    HelloWorld(){}

    void say(){
        std::cout << "Hello World!" << std::endl;
    }
};
#endif

编译成功

1>生成成功。

注意:

另一种解决办法,(但是我不推荐使用main.cppmain()函数返回变量int前面加上一个“;”。也可以解决问题。


#include <iostream>


#include "helloworld.h" 

;int main(void)
{
    HelloWorld hello;
    hello.say();
    while(1){}
    return 0;
}

参考网站:
1. http://stackoverflow.com/questions/11808432/c-error-c2144-syntax-error-int-should-be-preceded-by