ВУЗ:
Составители:
Рубрика:
132
if (!( pa = new int [ sz = v.sz ] )){
cout << “Неудача при выделении памяти \n“; exit(1);}
for ( int i = 0; i < sz; i++) pa [ i ] = v.pa [ i ];
}
Array::Array ( int s ){
// Создание неинициализированного массива размером s.
if ( s<= 0) { cout <<“Неверный размер массива \n“; exit(1); }
if (!(pa = new int [ sz = s ] )) {
cout <<“Неудача при выделении памяти \n“; exit (1); }
}
int & Array::operator [ ] ( int index ) {
if ( index < 0 || index >= sz){
сout <<“Выход за границу массива!\n“; exit (1); }
return pa[index];
}
/* Так как результат возвращается по ссылке, то возвращается не
значение элемента, а сам этот элемент и поэтому выражение вида с[i],
где с – типа Array, может находиться в левой части операции присваи-
вания. */
ostream & Array::print ( ostream& out) {
out << ’\n’;
for ( int i = 0; i < sz; i++) out << pa[ i ]<<” ”;
out <<”\n”;
return out; }
ostream & operator << ( ostream & out, Array & v ){
v.print ( out);
return out; }
Array & Array::operator + ( Array & op2 ) {
if ( sz != op.sz ){
cout << “Попытка сложить массивы разных размерностей!\n“;
exit (1);}
Array & tmp = *( new Array (sz));
for ( int i = 0 ; i < sz ; i ++ ) tmp[ i ] = pa[ i ] + op2.pa[ i ];
return tmp;
}
Array & Array::operator = ( Array &v ){
if ( sz != .sz ) {
cout <<”Разные размеры массивов при присваивании!\n”; exit (1);}
for ( int i = 0; i < sz ; i ++ ) pa[ i ] = v[ i ];
return ( *this );
}
Страницы
- « первая
- ‹ предыдущая
- …
- 128
- 129
- 130
- 131
- 132
- …
- следующая ›
- последняя »
