C++ 在成员初始化列表中初始化指针

C++ Initialize Pointer in Member Initialization List

本文关键字:初始化 指针 列表 C++ 成员      更新时间:2023-10-16

我想知道是否有一种方法可以在我的类的构造函数中初始化基本初始化列表中的数组。

现在,我正在将 myChars(一个 char*)初始化为大小为 DEFAULT_SIZE 的空字符数组:

    A::A() :
      mySize(0), maxSize(DEFAULT_SIZE)
    {
         myChars = new char[DEFAULT_SIZE];
    }

有什么方法可以在基本初始化列表中执行此操作吗?所以它很简单:

     A::A() :
      mySize(0), maxSize(DEFAULT_SIZE), **myChars initialized here**
    {
    }

谢谢!

你试过吗?

 A::A() :
  mySize(0), maxSize(DEFAULT_SIZE), myChars(new char[DEFAULT_SIZE])
{}

但是,强烈建议改用 std::stringstd::vector<char>std::unique_ptr<char[]>,所有这些都可以正确管理内存。