我将如何初始化一个私有(private)数组,其中一百个项目中的每一个都等于一个包含两项的数组,例如 {-1, 0}
。我下面的代码显然不起作用,因为我问你们所有人。
例子.h:
#ifndef EXAMPLE
#define EXAMPLE
class Example {
private:
char grid[10][10];
public:
Example();
};
#endif
例子.cpp:
#include "example.h"
#include <iostream>
Example::Example() : grid({-1, 0}) {}
最佳答案
这在 C++ 中目前是不可能的。在 C++0x 中,可以使用大括号,例如
Example::Example() : grid{{-1, 0}} {}
目前,您可以将该数组包装在一个类中,而不会造成任何性能损失(该数组仍将是一个普通的原生多维数组)
class Example {
private:
struct data {
char grid[10][10];
static data newData() {
data d = {{
{ -1, 0 }, { -2, 1 } /* ... */
}};
return d;
}
} d;
public:
Example() : d(data::newData()) { }
};
关于c++ - 如何初始化私有(private)多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5532884/