2 u012662731 u012662731 于 2016.02.26 12:43 提问

C++成员函数前加类型,在g++下的编译错误,在vs2012下编译通过,什么原因
c++

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::编译通过

4个回答

zuishikonghuan
zuishikonghuan   2016.02.26 21:36
已采纳

1。有可能是g++不支持
2。编译时加上-std=...指定用什么标准试试

caozhy
caozhy   Ds   Rxr 2016.02.26 12:45

public:
void MY::print()
gcc不支持这个写法
修改为
public:
void print()

oyljerry
oyljerry   Ds   Rxr 2016.02.26 13:22

不同编译器语法支持有一些区别。你可以去掉MY,然后来支持g++

John_ToStr
John_ToStr   Rxr 2016.02.26 16:02

这只能说明visual stdio 高版本要比GCC牛逼得多, 因为他考虑问题更为全面, 这就是个活生生的例子...

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!