我不明白为什么可以这样做:
int numbers[] = {-4,3,0,100,2000};
Set d(5,numbers);
但我在尝试这样做时遇到以下错误:
Set d(5,{-4,3,0,100,2000});
Error:
warning: extended initializer lists only available with -std=c++0x
or -std=gnu++0x|
error: no matching function for call to
'Set::Set(int, <brace-enclosed initializer list>)'
构造函数:
Set::Set(int size, const int constSet[])
谢谢你的帮助
最佳答案
这在 C++03 中是不允许的,但最新的标准 C++11 允许。
看这个:https://en.wikipedia.org/wiki/C%2B%2B11#Initializer_lists或者这个:https://www2.research.att.com/~bs/C++0xFAQ.html#init-list
顺便说一下,您的构造函数实际上采用的是指针,而不是数组。
关于c++ - 是否可以将花括号的文字数组作为构造函数中的参数发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10594424/