7.12

来源:互联网 发布:mac清理垃圾软件 编辑:程序博客网 时间:2024/06/07 14:09
#include<iostream.h>  #include<iomanip.h>class Matrix {        public: Matrix();                          //构造函数      friend Matrix operator+(Matrix&,Matrix&);     //声明重载运算符"+"        friend istream& operator>>(istream&,Matrix&); //">>"friend ostream& operator<<(ostream&,Matrix&); //"<<"        private: int m[2][4]; }; Matrix::Matrix() { for(int i=0;i<2;i++)         for(int j=0;j<4;j++)           m[i][j]=0; } Matrix operator+(Matrix& a,Matrix& b)       //定义运算符"+"的重载函数{Matrix c;for(int i=0;i<2;i++) for(int j=0;j<4;j++) {c.m[i][j]=a.m[i][j]+b.m[i][j];}return c;}istream& operator>>(istream&in,Matrix&n)     //">>"{for(int i=0;i<2;i++)         for(int j=0;j<4;j++)in>>n.m[i][j];return in;}ostream& operator<<(ostream&out,Matrix&n)     //"<<"{for(int i=0;i<2;i++){        for(int j=0;j<4;j++){out<<n.m[i][j]<<'\t';}out<<endl;}return out;}int main(){Matrix a,b,c;cout<<"Please input Matrix a:"<<endl;cin>>a;cout<<"Please inout Matrix b:"<<endl;cin>>b;cout<<"Matrix a:"<<'\n'<<a<<endl;cout<<"Matrix b:"<<'\n'<<b<<endl;c=a+b;cout<<"Matrix c= Matrix a+ Matrix b:"<<'\n'<<c<<endl;return 0;}


在编译中出现错误:


后发现是因为我把运算符函数重载为友元函数,却忘记在头文件中加上后缀“.h”所引起的编译出错,修改后程序运行顺利。


0 0
原创粉丝点击