C 過載 實驗七

2021-09-02 14:15:43 字數 1941 閱讀 8148

描述

定義乙個類matrixadd,其資料成員為乙個m*n的矩陣(即二維陣列),其中m和n是兩個預先定義的符號常數。通過過載運算子」+」和」=」,實現矩陣相加和賦值運算。

具體要求如下:

(1)私有資料成員

int a[m][n]:存放二維陣列值。

(2)公有成員函式

matrixadd():預設建構函式,空操作。

matrixadd(int x[m][n]):建構函式,用x初始化資料成員a。

matrixadd operator+(matrixadd &b):過載加法運算子」+」實現兩個矩陣相加。 l

void operator=(matrixadd &b):過載賦值運算子」=」實現兩個矩陣賦值。 l

定義「<<」和「>>」運算子過載函式,實現矩陣的輸入輸出。

(3)在主函式中完成對該類的測試。

注意:在程式的開頭,定義符號常數m和n的值分別為2和3,表示二維陣列的行數和列數。在主函式中定義整型陣列a[m][n]和b[m][n],它們的初值取上述示例值。定義三個matrixadd類的物件a、b和c,並用陣列a和b初始化物件a和b。將a加b後賦值給c。然後輸出物件c的資料成員a矩陣的值。

輸入兩個2x3矩陣

輸出兩個矩陣之和

樣例輸入

1 2 3

4 5 6

2 2 2

3 3 3

樣例輸出

3 4 5

7 8 9

#include using namespace std;

const int m = 2;

const int n = 3;

class matrixadd

//預設構造引數,需要它是因為有被定義時無引數的物件 c ,用時需要加{}

matrixadd(int x[m][n]) //帶參建構函式,main函式裡規定的值->形參x[m][n]->實參a[m][n]

}} matrixadd operator+(matrixadd &b);

void operator=(matrixadd b);//void函式不能加&,不知道為什麼

friend istream& operator>>(istream& i, matrixadd& d1);

friend ostream& operator<<(ostream& o, matrixadd& d2);

private:

int a[m][n];

};matrixadd matrixadd::operator+(matrixadd &b)等價於a.a[m][n].matrixadd( b.a[m][n] )

} return m;

}void matrixadd::operator=(matrixadd b) }}

istream& operator>>(istream& i, matrixadd& d1)

} return i;

}ostream& operator<<(ostream& o, matrixadd& d2)

o << endl;

} return o;

}int main()

, };

int b[m][n] = , };

matrixadd a(a), b(b), c;

c = a + b;//過載「=」的意義在此.但不過載也無所謂,直接用於這樣的賦值。

//系統已經為每乙個新宣告的類過載了乙個賦值運算子,作用是逐個複製類的資料成員

//但如果資料成員包括指向 動態分配記憶體 的指標成員時,需要過載

/*c.show();*/

cout << c;

system("pause");

return 0;

}

實驗七,運算子過載

一 實驗目的和要求 熟悉運算子過載的定義和使用方法 二 實驗內容 1.除錯下列程式 sy7 1.cpp includeusing namespace std class complex complex double r complex double r,double i complex operat...

實驗七 運算子過載

一 實驗目的和要求 熟悉運算子過載的定義和使用方法 二 實驗內容 1.除錯下列程式 cpp view plain copy sy7 1.cpp include using namespace std class complex complex double r complex double r,do...

實驗七運算子過載

實驗目的和要求 熟悉運算子過載的定義和使用方法 實驗內容 1.除錯下列程式 輸出結果 2.除錯下列程式 寫出程式的輸出結果,並解釋 分析與討論 結合上題中的程式總結運算子過載的形式。答 運算子函式過載一般有兩種形式 過載為類的成員函式和過載為類的非成員函式。非成員函式通常是友元。可以把乙個運算子作為...