Ser*_*rge 23 c++ arrays class constants initializer-list
我的情况可以归纳如下:
class Test
{
Test();
int MySet[10];
};
Run Code Online (Sandbox Code Playgroud)
是否可以MySet在初始化列表中初始化?
像这种初始化列表:
Test::Test() : MySet({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) {}
Run Code Online (Sandbox Code Playgroud)
有没有办法在类的初始化列表中初始化一个常量大小的成员数组?
old*_*inb 27
虽然在C++ 03中不可用,但C++ 11引入了扩展的初始化列表.如果使用符合C++ 11标准的编译器,您确实可以这样做.
struct Test {
Test() : set { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } { };
int set[10];
};
Run Code Online (Sandbox Code Playgroud)
上面的代码编译精细使用g++ -std=c++0x -c test.cc.
正如下面由评论中的一位有用的用户所指出的,这段代码不能使用Microsoft的VC++编译器编译.也许有人可以告诉我是否等效使用std::array会?
#include <array>
struct Test {
Test() : set { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } } { };
std::array<int, 10> set;
};
Run Code Online (Sandbox Code Playgroud)
这也编译精细使用g++ -std=c++0x -c test.cc.
| 归档时间: |
|
| 查看次数: |
56441 次 |
| 最近记录: |