内容:
说明:
运算符重载
示例代码:
// Operator_Overloading.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <vector>
#include <iostream>
using namespace std;
class Matrix
{
public:
vector<vector<int>> a;
friend Matrix operator+( Matrix x, Matrix y )
{
Matrix tmp;
for( int i = 0; i < x.a.size(); i++ )
{
vector<int> sum;
for( int j = 0; j < x.a[i].size(); j++ )
{
sum.push_back( x.a[i][j] + y.a[i][j] );
}
tmp.a.push_back( sum );
}
return tmp;
}
};
//by zhaocl
int main()
{
int n;
cin >> n;
while( n-- )
{
Matrix x;
Matrix y;
Matrix result;
int k, m, data;
cin >> k >> m;
for( int i = 0; i < k; i++ )
{
vector<int> b;
for( int j = 0; j < m; j++ )
{
cin >> data;
b.push_back( data );
}
x.a.push_back( b );
}
for( int i = 0; i < k; i++ )
{
vector<int> b;
for( int j = 0; j < m; j++ )
{
cin >> data;
b.push_back( data );
}
y.a.push_back( b );
}
result = x + y;
for( int i = 0; i < k; i++ )
{
for( int j = 0; j < m; j++ )
{
cout << result.a[i][j] << " ";
}
cout << endl;
}
}
system( "pause" );
return 0;
}
知识点:
1、运算符重载 type operator 运算符(参数)
2、friend友元使用,否则提示operator参数不正确