【问题标题】:Setting all elements of an array of pointers to nullptr in C++在 C++ 中将指针数组的所有元素设置为 nullptr
【发布时间】:2018-01-23 23:47:54
【问题描述】:

我只是想知道是否有一种方法可以在不使用循环的情况下设置指向所有空值的初始化指针数组?

class Abc{
  //An array of 2000 Product pointers
  Product* product_[2000];
      public:
         Abc();
}

我想在调用构造函数时将所有指针设置为空:

Abc::Abc(){
    product_ = {};
}

这不起作用,product_ 必须是可修改的值。 有没有比循环 2000 个元素更简单的方法?

谢谢。

【问题讨论】:

  • 你有什么反对循环的?
  • Abc::Abc() : product_{} {}

标签: c++ arrays c++11 pointers


【解决方案1】:

你可以使用:

class Abc{
  //An array of 2000 Product pointers
  Product* product_[2000];
      public:
         Abc() : product_{} {}
};

【讨论】:

    【解决方案2】:

    如果你使用 std::array 他们会默认初始化为 nullptr。

    std::array<Product *, 2000> product;
    

    【讨论】:

      【解决方案3】:

      使用 Visual Studio 编译器,您可以在初始化器列表中将指针初始化为 NULL,如下所示-

      class Abc{
        //An array of 2000 Product pointers
        Product* product_[2000];
            public:
               Abc():product_(){};
      }
      

      【讨论】:

        猜你喜欢
        • 2020-08-04
        • 1970-01-01
        • 2022-01-11
        • 2011-03-22
        • 2020-10-15
        • 1970-01-01
        • 2021-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多