Язык С++ и программирование на нем. Рейзлин В.И. - 131 стр.

UptoLike

Составители: 

133
// Конец файла Array.cpp.
Теперь можно написать следующую программу:
# include Array.cpp“
void main ( ){
int a [ ] = { 1, 7, 3, 15, 6, 20, 7 };
Array mas (a, sizeof a / sizeof (int));
Array b (7); // Неопределенный массив.
Array c = mas; // Конструктор копирования.
b = mas + c ;
mas = b + ( c = mas );
for ( int i=0; i < 7; i ++)cout << a[i] << “; cout << “\n“;
cout << mas << b << c; // Сравните эти два вывода!
}
Создадим теперь класс Matrix, являющийся формализацией кон-
цепции двумерного массива.
// Файл matrix.cpp
class Matrix { Array **pm; // Массив указателей на Array.
int r, c; // Размерности матрицы.
public:
Matrix ( int, int );
virtual ~Matrix ( );
int row( ) { return r;}
int col ( ) { return c;}
Array & operator [ ] (int);
Matrix & operator = (Matrix&);
Matrix & operator + (Matrix&);
Matrix & operator * (Matrix&);
ostream & print (ostream & s);
};
// Результатом операции [ ], примененной к объекту типа Matrix,
// должен быть объект типа Array:
Array & Matrix::operator [ ] ( int index ){
if ( index < 0 || index >= r ) {
cout << " Выход за границу массива ! \n"; exit (1);}
return * pm [index];
}