c++ - 是否可以将花括号的文字数组作为构造函数中的参数发送?

标签 c++

我不明白为什么可以这样做:

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/

相关文章:

c++ - QWidgets 是否为成员(member)?

c++ - 为什么在调用 AfxWinInit 时收到警告 C6309?

c++ - 使用 for_each 调用带有成员数据的成员函数

c++ - std::strings 擅长随机插入/随机删除吗?

c++ - C++ 中上周一的时间戳

c++ - 椭圆绘图

c++ - boost::lockfree::spsc_queue的read_available和write_available应该如何使用?

c# - 不完全确定如何使用接口(interface)进行多重继承 c#

c++ - 通过 copy-and-swap 分配与两个锁

c++ - Python:类 C++ 流输入