【问题标题】:Pointers as member variables to a class/dynamic memory in classes指针作为成员变量指向类中的类/动态内存
【发布时间】:2015-02-15 16:37:44
【问题描述】:

假设我们有以下创建一个 10 x 10 二维数组并将第一个单元格设置为 100:

class twoD{
    int **p = new int*[10];
public:
    twoD(){
        *p = new int[10];
        p[0][0] = 100;
    }
};

为什么会这样,但下面的不行。

class twoD{
    int **p = new int*[10];
    *p = new int[10];
public:
    twoD(){
        p[0][0] = 100;
    }
};

【问题讨论】:

  • 当然这与“二维数组”无关。或指针。
  • 这些都没有真正以正确初始化的二维数组结束。你真的希望你的构造函数做这样的事情:for (int i = 0; i < 10; ++i) { p[i] = new int[10]; },你最好有一个析构函数来匹配,否则你会到处泄漏内存。

标签: c++ class pointers dynamic


【解决方案1】:

因为在第二种情况下“*p = new int[10];”不是变量声明,因此不能在类定义中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    相关资源
    最近更新 更多