所以我在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();
}
...
};
答案 0 :(得分:6)
代码没有泄漏内存而且不可能这样做,因为你在代码中的任何地方都没有说new
或malloc
,也没有以无人看守的方式调用这样做的函数(即在RAII对象之外)。
然而,代码也相当无用且误导(例如Matrix4x4::entry
隐藏残余Matrix::entry
,rows
和columns
似乎有点冗余的变量),这只能通过坐好一本好的C ++书几个小时来解决。
*)或者@Nicol Bolas帮助指出,make_shared
和丢失的循环引用