在C++中为指针数组定义NULL
Defining NULL for an array of pointers in C++
我用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
空指针。
相关文章:
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- C++编程从外部文本文件定义数组大小
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 删除动态数组时未定义标识符
- 在定义字符数组(井字游戏)的 for 循环中应用输入限制
- C++ 返回指向函数内定义的静态数组的指针是否有效?
- 模板类中的数组定义
- C 结构数组定义
- 在C++中为指针数组定义NULL
- 为什么局部变量不隐藏数组定义中的全局变量
- 静态数组定义错误 C++
- C++ 二维数组定义
- 这是否是 C++ 中的有效 2D 数组定义
- 模板类数组定义不是类型名称、静态或枚举器C++
- 用静态2d数组定义类的方便方法是什么(并且2d数组的大小只有在编译时才知道)
- 如何将字符数组定义为常量
- 二维数组定义
- 如何保护数组定义,防止使用非零值进行不完整的初始化
- 为3D数组定义setter/getter属性
- 在静态成员数组定义中对自身使用sizeof操作符