Re[3]: Перегрузка операторов
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.05.04 11:38
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Учитывая правила выбора лучшего кандидата, можно сказать, что наличие перегрузки позволяет использовать некоторые техники, которые без этого недоступны. Например, выбор лучшего алгоритма в зависимости от типа итератора, как это делается в STLport. Альтернативой этому теоретически могла бы быть частичная специализация, но выбор наиболее подходящей специализации тоже определяется через правила выбора из перегруженных функций.


ДА, пожалуй.

ПК>Не совсем. Предопределенные операторы для встроенных типов функциями не являются. В частности, нельзя взять их адрес, они не окружены точками следования и т.п.


Ну это скорее исключение, а не правило. Для понимания лучше рассматривать оператор как функцию. Хотя ты конечно прав.

ПК>Оператора присваивания здесь нет. Здесь есть инициализация. Это суть разные вещи.


Для классов да, но разве для POD типов это не присваивание? Я долго читал раздел 8.5 стандарта (ИМХО на редкость непонятный) и понял именно так.

ПК>Нет, оптимизация здесь ни при чем. Здесь в любом случае должен быть использован конструктор копирования (8.5/14). В частности, для string конструктор по умолчанию в данном случае не требуется, что было бы нужно, если бы стандарт предписывал использовать operator=.


Ааа да. вот здесь ты абсолютно прав. Это я поторопился
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.