定義矩陣類,將兩個二維陣列相加和相減,過載運算子和

時間 2021-09-10 17:49:12

1樓:明天威威去旅行

class matrix //定義matrix類

;matrix::matrix() //定義建構函式

定義過載運算子「+」函式

定義過載運算子「-」函式

void matrix::input() //定義輸入資料函式

void matrix::display() //定義輸出資料函式

cout << endl;}}

2樓:孟羽然

#include

#include

using namespace std;

class matrix

;matrix::matrix(int m, int n)

}matrix::~matrix()

int matrix::getvalue(int i, int j) const

void matrix::setvalue(int i, int j, int v)

bool matrix::operator=(const matrix& m1)

}return true;

}matrix operator+(const matrix& m1, const matrix& m2)

}return result;

}void matrix::dump()

cout << "\n";

}cout << endl;

}int main()

編乙個程式,用成員函式過載運算子「+」和「-」,將兩個矩陣(這兩個矩陣均為2行3列)相加和相減。

3樓:大野瘦子

**如下:

#include

#include

using namespace std;

class maxtrix

private:

int maxtrix[2][3];

public:

maxtrix()

for(int i=0;i<2;i++)

for(int j=0;j<3;j++)

maxtrix[i][j]=3*(i)+j+1;

void setmaxtrix()

cout<<"輸入2維陣列,數字間以空格隔開"

for(int j=0;j<3;j++)

cin>>maxtrix[i][j];

void outputmaxtrix()

cout<<"矩陣輸出:"

for(int j=0;j<3;j++)

cout

maxtrix m;

for(int i=0;i<2;i++)

for(int j=0;j<3;j++)

m.maxtrix[i][j]=this->maxtrix[i][j]+max.maxtrix[i][j];

return m;

friend maxtrix operator-(const maxtrix& op1,const maxtrix& op2);

maxtrix operator-(const maxtrix& op1,const maxtrix& op2)

maxtrix m;

for(int i=0;i<2;i++)

for(int j=0;j<3;j++)

m.maxtrix[i][j]=op1.maxtrix[i][j]-op2.maxtrix[i][j];

return m;

void main()

maxtrix m;

maxtrix op1,op2;

op2.setmaxtrix();

m.outputmaxtrix();

op1.outputmaxtrix();

op2.outputmaxtrix();

m=op1+op2;

m.outputmaxtrix();

op1.outputmaxtrix();

op2.outputmaxtrix();

m=op1-op2;

m.outputmaxtrix();

op1.outputmaxtrix();

op2.outputmaxtrix();

注意事項

c++允許在同乙個作用域中的某個函式和運算子指定多個定義,分別稱為函式過載和運算子過載。

過載宣告是指乙個與之前已經在該作用域內宣告過的函式或方法具有相同名稱的宣告,但他們的引數列表和定義(實現)不相同。當呼叫乙個過載函式或過載運算子時,編譯器通過把函式所使用的引數型別和定義中的引數型別進行比較,決定選用最合適的定義。

在同乙個作用域內,可以宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(引數個數,型別或者順序)必須不同,不能僅通過返回型別的不同來過載函式。

overload.cpp

#include

using namespace std;

class printdata

public:

void print(int i)

cout << "integer is : " << i << endl;

void print(double f)

cout << "flota is : " << f << endl;

void print(char c)

cout << "char is : " << c << endl;

int main()

printdata pd;

pd.print(5);

pd.print(300.1);

char c = "hello c++";

pd.print(c);

return 0;

執行結果:

exbot@ubuntu:~/wangqinghe/c++/20190807$ vim overload.cpp

exbot@ubuntu:~/wangqinghe/c++/20190807$ g++ overload.cpp -o overload

exbot@ubuntu:~/wangqinghe/c++/20190807$ ./overload

integer is : 5

flota is : 300.1

char is : hello c++

4樓:娛樂小八卦啊

此題考察的知識點是:類的成員函式。**如下:

#include

using namespace std;

class matrix                                          //定義matrix類

{public:

matrix();                                          //預設建構函式

friend matrix operator+(matrix &,matrix &);        //過載運算子「+」

void input();                                      //輸入資料函式

void display();                                    //輸出資料函式

private:

int mat[2][3];

擴充套件資料

c++ 允許在同一作用域中的某個函式和運算子指定多個定義,分別稱為函式過載和運算子過載。過載宣告是指乙個與之前已經在該作用域內宣告過的函式或方法具有相同名稱的宣告,但是它們的引數列表和定義(實現)不相同。

當呼叫乙個過載函式或過載運算子時,編譯器通過把所使用的引數型別與定義中的引數型別進行比較,決定選用最合適的定義。選擇最合適的過載函式或過載運算子的過程,稱為過載決策。

在同乙個作用域內,可以宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同。您不能僅通過返回型別的不同來過載函式。

5樓:匿名使用者

懶人是很多的。。同樣足見現在的通訊的資源獲取手段比我們上學那會兒多多了

6樓:匿名使用者

#include

#include

using namespace std;

class maxtrix}}

void setmaxtrix()}}

void outputmaxtrix()

}return m;

}friend maxtrix operator-(const maxtrix& op1,const maxtrix& op2);

};maxtrix operator-(const maxtrix& op1,const maxtrix& op2)

}return m;

}void main()

7樓:匿名使用者

你學習一下操作符過載那一章節就能完成了

編乙個程式,用成員函式過載運算子"+"和"-"將兩個二維陣列想加或相減,

8樓:顧小蝦水瓶

程式如下:

#include

using namespace std;

class matrix

private:

int matrix[3][3];

public:

matrix()

int i,j,k=1;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

matrix[i][j]=k++;

matrix operator+(matrix &m1)

matrix m;

int i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

m.matrix[i][j]=matrix[i][j]+m1.matrix[i][j];

return m;

matrix m;

int i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

m.matrix[i][j]=m1.matrix[i][j]‐m2.matrix[i][j];

return m;

friend istream& operator>>(istream &in,matrix &m)

int i,j;

cout<<"input the number for the matrix:\n";

for(i=0;i<3;i++)

for(j=0;j<3;j++)

in>>m.matrix[i][j];

return in;

friend ostream& operator<<(ostream &out,matrix &m)

int i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

out

定義二維陣列

首先你要理解二維陣列的真正含義,它的第一維就是一組資料的起始位址,第二維就是某組資料中的某個值.其次,你要知道a 4 所表達的意思,是指二維陣列a的每一維都是由4個元素組成的一維陣列.而編譯器可以根據你賦給a的初值個數計算它的第一維長度 元素總個數 4,如果不能整除,則長度加1,此時還應該有幾個沒有...

定義二維陣列4 4,二維陣列中的陣列元素都用鍵盤賦值。求出該二維陣列中主對角線的和C語言

include stdio.h include conio.h include stdlib.h main for i 0 i 4 i printf 此矩陣主對角線的和為 d n num include define m 4 int main int i,j,a m m sum 0 for i 0 ...

vb定義乙個二維陣列,求各維上下界

陣列名,不可預設。語法lbound arrayname dimension lbound 函式的語法包含下面部分 部分描述arrayname必需的。陣列變數的名稱,遵循標準的變數命名約定。dimension可選的 variant long 指定返回哪一維的下界。1 表示第一維,2 表示第二維,如此類...