正在初始化指向null的专用指针数组
Initializing a private array of pointers to null
我正在做一个C++项目,该项目基本上使用几个类来模拟零售环境;到目前为止,一切都很顺利,但我使用C++的时间还不长,我对这个数组应该如何工作有点困惑。
//Customer.h
private:
std::array< CustomerOrder *, 3 > orderList;
基本上,数组在Customer.h文件中声明为private,但Customer.h和Customer.cpp文件也提供了一个方法
addOrder(CustomerOrder *c)
用于向数组添加CustomerOrder指针(CustomerOrder是另一个类)。根据我的经验,该方法的逻辑非常简单:使用for循环查找包含空指针的第一个索引,然后将指针插入该索引。
问题是,这涉及到首先将数组初始化为空指针,我不确定应该如何或在哪个文件中这样做。由于数组是私有的,我认为我必须在.h文件中使用类似的东西来初始化它
for(size_t i = 0; i < orderList.size(); ++i)
orderlist[i] = nullptr;
或
orderlist[3] = {nullptr}
必须在.h文件中执行此操作吗?有没有一种更可靠的方法来初始化数组?
作为参考,我使用的是C++11标准,如果这有什么不同的话。
如果这个数据成员是私有的,那么它可以在构造函数中初始化,也可以在初始化它的某个成员函数中初始化。
要将数组的所有元素设置为nullptr,可以使用类std::array
的成员函数fill
。
例如
orderlist.fill( nullptr );
使用构造函数,可执行代码不应该在h文件中
并且:不要在3大小的阵列上执行orderlist[3] = {nullptr}
它只有0、1、2的独立作品。循环要好得多。
相关文章:
- C++ 将派生类的成员函数指针作为参数传递时选择了错误的模板专用化
- 使用类指针重载C++命名空间函数模板专用化替代方法?
- 如何部分专用化非成员和成员函数指针的结构模板
- 使用模板专用化来比较指针引用
- 静态声明专用类的接口指针数组
- 指针和 c 样式数组变量的专用模板
- 模板专用化和函数指针
- 将模板专用化为函数指针
- 在使用指向 const 和非 const 方法的成员指针时减少模板专用化的数量
- 具有成员函数指针的部分模板类专用化
- 正在初始化指向null的专用指针数组
- 通过C 传递专用功能指针
- 如何使指针指向模板化成员函数的专用变体
- 使用指向部分专用函数成员的指针自动填充向量
- 从c++中的方法访问指向对象的专用指针数组
- 如果指向成员函数的指针为NULL,则方法的部分专用化
- 函数指针类型和值的部分类专用化
- 运算符<<重载时无法访问专用成员(指定指针)
- 链表中C++专用指针错误
- 从主访问指向数组的专用指针