是否可以将文本的大括号数组作为构造函数中的参数发送
Is it possible to send a curly braced array of literals as a parameter in a Constructor?
我不明白为什么可以这样做:
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++,因此 编译此代码时,请确保执行以下操作: g++ -std=c++0x sample.cpp -o sample
使用较新版本的 C++ 时,-std=c++0x
很重要
相关文章:
- 将成员函数作为构造函数参数调用时出错 "Variable is not a type name"
- 在按值调用 (c++) 中转发构造函数参数
- 如何使用 swig 修改类构造函数以保留对其中一个构造函数参数的引用?
- 如何在构造函数参数中初始化"std::set"?
- 何时应在构造函数参数中使用 const C++?
- 使用模板化结构作为构造函数参数
- 使用 lambda 作为构造函数参数是否需要C++ 17?
- 如何使输入文本文件成为构造函数参数?c++
- shared_ptr构造函数参数是否应按值传递
- 是否允许使用初始值设定项列表将const数组引用实例化为构造函数参数
- 复制构造函数参数为0
- 用作成员构造函数参数的函数的求值顺序
- 结构中的默认成员值或默认构造函数参数
- C++将引用成员绑定到构造函数参数
- 如何通过可变参数模板将多个构造函数参数转发到数组初始值设定项列表?
- 模板函数指针参数与构造函数参数
- 如何将 std::string 作为构造函数参数传递,并将其保存的 C 字符串存储在 void 指针中?
- 如何基于构造函数参数模板化类成员函数的代码
- 将派生类构造函数参数传递给受保护的成员
- 如何根据构造函数参数使用超类类型初始化成员变量?