我用C++编写了一个类。我在信中写道:
class Node{
private:
Node*m[200]=NULL;
};
(这是课程的一部分)但是我收到错误。对于定义一个指针数组NULL,我应该怎么做?
要使所有200个指针为空,请写入:
class Node
{
Node *m[200] = {};
};
这仅在C++11及更高版本中有效。
为了完整性,如果您没有C++11支持,您可以在构造函数中初始化值。这具有零初始化元素的效果:
class Node
{
public:
Node() : m() {}
private:
Node* m[200];
};
还要注意,初始Node
的值初始化实例具有与WRT零初始化元素相同的效果:
Node n = {}; // Node must be aggregate, as in original code.
由于您正在编写C++,我建议您避免使用原始数组,而使用std::vector
(如果您有C++11,则使用std::array
)。
在C++11之前的版本中,您需要在构造函数中初始化您的成员:
class Node
{
public:
Node() : m(200) {}
private:
std::vector<Node*> m;
};
这将在构造Node
时初始化m
以保持200
空指针。