該類由存儲動態二維數組的對象'mPoint'組成。我試圖讓它可以比較這些矩陣中的兩個,看看它們是否相等。因此我重載了運算符'=='。運算符重載:不匹配'運算符[]'
我得到一個錯誤「操作符[]'(操作數類型是'Square_Matrix和'int')指向行」if(mPoint [i] [j]!= Par [i] [j])」在.cpp文件。我怎樣才能解決這個問題?我很新的超載
//header file
#include <iostream>
using namespace std;
class Square_Matrix
{
public:
int **mPoint;
int size;
void Set_Size (int new_size);
bool operator==(Square_Matrix Par);
。
//.cpp file
#include <iostream>
using namespace std;
#include "Square_Matrix.h"
void Square_Matrix::Set_Size (int new_size)
{
for (int i = 0; i < size; i++){
delete [] mPoint[i];
}
delete [] mPoint;
size = new_size;
mPoint = new int*[new_size];
for (int i = 0; i < new_size; i++){
mPoint[i] = new int[new_size];
}
}
bool Square_Matrix::operator==(Square_Matrix Par){
if (size != Par.size){
return false;
}
for (int i = 0; i < size; i++){
for (int j = 0; j < size; j++){
if (mPoint[ i ][ j ] != Par[ i ][ j ]){
return false;
}
}
}
return true;
}
請顯示你的重載'運算符的定義[]' – Brian
如果你還沒有定義一個,那麼這就是爲什麼你會得到一個錯誤。 – Brian