请看下这个程序的问题!
//Array.h
#include <iostream>
using namespace std;
class Array
{
friend istream &operator>>( istream &, Array & );
friend ostream &operator<<( ostream &, Array & );
public:
Array();
void setNumber( int , int );
void setNumber( int , int , const int & );
int getNumber( int, int ) const;
const Array operator+( const Array & );
private:
int a[2][3];
};
..............................................................
//Array.cpp
#include "Array.h"
Array::Array()
{
for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
a[n][m] = 1;
}
}
}
void Array::setNumber( int i, int j)
{
cin >> a[i][j];
}
void Array::setNumber( int i, int j, const int &k )
{
a[j][j] = k;
}
int Array::getNumber( int i, int j ) const
{
return a[i][j];
}
const Array Array::operator+( const Array &array )
{
Array temp;
for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
int num = a[n][m] + array.a[n][m];
temp.setNumber( n, m, num );
}
}
return temp;
}
istream &operator>>( istream &input, Array &array )
{
for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
array.setNumber( n, m );
}
}
return input;
}
ostream &operator<<( ostream &output, Array &array )
{
for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
array.getNumber( n, m );
}
}
return output;
}
..............................................................
//aa.cpp
#include <iostream>
#include "Array.h"
using namespace std;
void main()
{
Array a, b, c;
cout << "cin >> b";
cin >> b;
c = a + b;//The program 'G:\我的c++程序\11_1a\Debug\11_1a.exe' has exited with code 0 (0x0).
cout << "c = a + b" << endl;
cout << c;
}