2 cccc ybw cccc_ybw 于 2016.03.16 22:45 提问

VC++6.0类初始化问题,下面的代码在6.0中编译通不过在GCC中就可以
c++

#include
#include

using std::string;
using std::cout;
using std::endl;
class Student{
int n;
string name;
public:
Student( int num, string m) : n(num), name( m )
{
}
void display( void )
{
cout << n << endl;
cout << name << endl;
}
};
int main( void )
{
Student *p = new Student[3]{{1,"xx"},{2,"yy"},{3,"zz"}};

for ( int i = 0; i < 3; i++ )
p[i].display();

delete[] p;

return 0;
}

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.03.16 22:51

具体什么错误 不同编译器有一些语法区别等

cxsmarkchan
cxsmarkchan   2016.03.17 00:28
Student *p = new Student[3]{{1,"xx"},{2,"yy"},{3,"zz"}};

这句话用的是C++11的语法,VC++6.0的编译环境应该是C++98标准,所以通不过。你可以换VS2012以上的版本试试。

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