这段代码泄漏了内存吗?我需要解放任何东西吗?C++内存

Dan*_*rch 0 c++ memory free memory-leaks

所以我在C++中编写了一些矩阵类.所以每个矩阵都有一个指向一个名为entries的数组的指针,我不确定我是否正确这样做但是我在子类中重新声明了数组.(我不是C++专家)

这个记忆是否需要免费?我只是用引用的数组覆盖指针吗?任何帮助将不胜感激.谢谢

class Matrix {
protected:
    float* entries;
public:
    int rows;
    int cols;


    Matrix() {
    }
    ~Matrix() {
    }
};

class Matrix4x4 : public Matrix {
    protected:
        float entry[4][4];
    public:

    /* This will create an empty matrix */
    Matrix4x4() {
        //Define the size of the arrays
        rows = 4;
        cols = 4;
        this->empty();
    }
    ...
};
Run Code Online (Sandbox Code Playgroud)

Ker*_* SB 6

代码不会泄漏内存而且不可能这样做,因为你从不在代码中说newmalloc在任何地方*,也没有以无人看守的方式调用函数(即在RAII对象之外).

但是,代码也相当无用的,误导的(例如,Matrix4x4::entry隐藏的遗迹Matrix::entry,并rowscolumns似乎有些多余变量),而只能通过坐下来与一个很好的C++的书了几个小时来解决.

*)或正如@Nicol Bolas所指出的那样,make_shared以及丢失的循环引用