Українська
Підсумки
Висновки
Операції мають зберігати очікуваний предметний зміст. Інваріант робить порівняння значень узгодженим. Потокове введення має зберігати стан при відмові. Тести перевіряють як результат, так і алгебраїчні закони.
Питання для самоперевірки
- Які властивості операції не можна змінити перевантаженням?
- Коли операція має бути вільною функцією?
- Чому += повертає посилання, а + значення?
- Чим відрізняються strong, weak і partial ordering?
- Чи створює власний spaceship автоматично рівність?
- Що дає friend і чого він не дає?
- Для чого потрібні дві версії operator[]?
- Як розрізняються префіксний і постфіксний ++?
- Що означає explicit operator bool?
- Чому operator<< не достатньо для std::println?
- Як уникнути часткової зміни при >>?
- Чому порядок полів важливий для defaulted порівняння?
- Який контракт має m[row, column]?
- Коли іменований метод кращий за оператор?
- Як перевірити переповнення до арифметичної операції?