内容:
说明:
运算符重载
示例代码:
// 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参数不正确