首页 > 解决方案 > 在 C++ 中使用 new 关键字初始化成员变量

问题描述

class Graph {
private:
    int n;
    Head* array;
    Graph(int n)
    {
        this->n = n;
        array = new Head[n];
        for (int i = 0; i < n; i++)
        {
            array[i].head->vertex = i;
        }
    }

};

当第一个 Head* 数组被声明时,它正在堆栈中完成。然后再次使用构造函数中的 new 关键字将其分配给堆。

我想了解这是否与我们写的相同:Head* array = new Head[n];如果是,那么这是在类中声明成员变量的标准方式吗?是不是也因为在创建对象的时候先调用了构造函数,所以如果成员变量不在构造函数中就没有设置?

标签: c++

解决方案


推荐阅读