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牛逼得多, 因为他考虑问题更为全面, 这就是个活生生的例子...