10 перегрузка
.pdf10–81
//Конструктор преобразования создает
//из строки ”НГТУ” временный объект,
//присваивает его объекту s4 и затем
//уничтожает
s4 = ”НГТУ”;
cout << ”s4 = ” << s4 << endl;
// Проверка работы конструктора копий
String *s4Ptr = new String(s1); cout << ”*s4Ptr = ” << *s4Ptr
<< endl;
10–82
// Проверка работы ПО =
cout << ”Самоприсваивание *s4Ptr:”
<<endl; *s4Ptr = *s4Ptr;
cout << ”*s4Ptr = ” << *s4Ptr
<<endl;
//Проверка работы деструктора
delete s4Ptr; return 0;
}
10–83
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ: Конструктор преобразования: Привет Конструктор преобразования: студент
Конструктор преобразования: |
(s3) |
||
Конструктор преобразования: |
(s4) |
||
|
|
|
|
s2 |
< s1 |
дает рез-т: 0 |
|
|
|
|
|
s3 |
пуст |
s3 присваивается объект s1: |
|
Объекту |
|||
Вызов operator= |
|
||
s3 |
= Привет |
|
|
|
|
|
|
10–84
s1 += s2 дает результат:
s1 = Привет студент
s4 = ”НГТУ” дает рез-т: Конструктор преобразования: НГТУ Вызов operator=
Деструктор: НГТУ S4 = НГТУ
Конструктор копий: Привет студент *s4Ptr = Привет студ☼
10–85
Самоприсваивание *s4Ptr:
Вызов operator=
Попытка самоприсваивания *s4Ptr = Привет студ☼
Деструктор: |
Привет студ☼ |
(*s4Ptr) |
Деструктор: |
НГТУ |
(s4) |