问题描述
- C++成员函数前加类型,在g++下的编译错误,在vs2012下编译通过,什么原因
- abc.cpp
#include
using namespace std;
class MY
{
public:
void MY::print()
{
cout<<""sdjflsdj""<<endl;
}};
int _tmain(int argc _TCHAR* argv[])
{
MY my;my.print();return 0;
}
g++ abc.cpp
abc.cpp:9: error: extra qualification ‘MY::’ on member ‘print’
去掉MY::编译通过
解决方案
1。有可能是g++不支持
2。编译时加上-std=...指定用什么标准试试
解决方案二:
public:
void MY::print()
gcc不支持这个写法
修改为
public:
void print()
解决方案三:
不同编译器语法支持有一些区别。你可以去掉MY,然后来支持g++
解决方案四:
这只能说明visual stdio 高版本要比GCC牛逼得多, 因为他考虑问题更为全面, 这就是个活生生的例子...
时间: 2024-08-22 14:07:15