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

UptoLike

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

129
Пример 2.
Рассмотрим снова класс stroka:
class stroka {
char *c;
int len;
public:
. . .
stroka & operator = ( stroka & str );
. . .
};
stroka & stroka::operator = (stroka & str) {
if ( str.len > len ){
cout << “Длина строки мала! Копирование невозможно!\n“;}
else { strcpy ( c, str.c ); len = str.len;}
return * this;
}
void main ( ) {
stroka A (“Строка A“), B (“Строка), C(“Str“);
A = B; A.display ( );
B = C; B.display ( );
C = A; C.display ( );
}
В результате выполнения этой программы на мониторе появится:
Длина строки: 6
Содержание строки: Строка
Длина строки: 3
Содержание строки: Str
Длина строки мала! Копирование невозможно!
Длина строки: 3
Содержание строки: Str
22.2. Операция [ ]
Выражение x [ y ], где x объект абстрактного типа Class, интер-
претируется как
x.operator [ ] (y).
Заметим, что массив объектов абстрактного типа, как и любого
стандартного, имеет стандартный тип указатель.