0
我不知道如何解決這個問題,下面是一個非常簡單的類,它將2D動態數組和大小存儲到一個對象(矩陣)中。我的問題是,初始化這些類中的一些不起作用,除非我調用成員函數。我縮小了問題的範圍,這是造成這種情況的析構函數。與析構函數的奇怪行爲
Square_Matrix a; //works
Square_Matrix b;
。
Square_Matrix a,b; //works
a.Set_Size(5);
。
Square_Matrix a,b; //doesn't work as a lone statement, the above does though
頭文件:
#include <iostream>
using namespace std;
class Square_Matrix
{
public:
int **matrix;
int size;
Square_Matrix();
~Square_Matrix(); //causing the problem
void Set_Size (int new_size);
}
.cpp文件:
#include <iostream>
using namespace std;
#include "Square_Matrix.h"
Square_Matrix::Square_Matrix()
{
size = 0;
}
Square_Matrix::~Square_Matrix() //causing the problem
{
for (int i = 0; i < size; i++){
delete [] matrix[i];
}
delete [] matrix;
}
此外,即使我添加一個if語句(如果大小> 0)它仍然有同樣的問題。 – Foxic
你還沒有描述*問題*。你說「初始化班級不起作用」。那是什麼意思?當你嘗試做什麼會發生什麼? – jalf