| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Что лучше использовать? |
| Автор: Medved 21.11.2004, 00:01 |
| Собственно сабж. Сейчас вплотную принялся за С++. Вот по мере изучения, кое-где и вспоминания, возникают вопросы. Под словом "лучше" подразумевается не то, что допустим шаблоны forever, а перегрузка ацтой, или наоборот. Понятно конечно что существуют обстоятельства, когда оправдано использовать одно, и отказываться от другого и опять же наоборот. Вот собственно и подскажите мне пожалуйста, в каких случаях лучше использовать шаблоны функций, а когда их перегрузку. Что рекомендует по этому поводу хороший стиль программирования на С++? Заранее благодарен! |
| Автор: chipset 21.11.2004, 00:12 |
| ИМХО шаблоны нужно в тех случаях когда неизвестно какие типы будут использоваться или кол-во типов неразумно большое (при сотне типов ты не будешь перегрузку делать). Перегрузку имхо следует использовать в тех случаях когда у типов которые предполагается использовать, разные интерфейсы. При это типов которые ты предполагаешь юзать в классе немного, штук пять-шесть. Если тебе надо делать перегрузку большего числа то ИМХО это уже не очень хорошая проектировка. |
| Автор: sergejzr 21.11.2004, 00:24 | ||||
Или, если для любого типа обработка в функции будет одинаковой например
Также шаблоны прекрасно используются для алгоритмов, где тип не важен. Например сортировка. Также перегрузку можно использовать вместе с шаблонами. Например если для всех типов, кроме флоата обарботка одинакова, то делаем шаблон, а для флоата перегружаем. Короче делаем то, что удобней, а самое главное так, чтобы через месяц ещё можно было прочесть и понять код |
| Автор: chipset 21.11.2004, 00:31 | ||
А если бы надо было допустим для типа A просто вывести значение обьекта а для типа B ещё выполнить функцию которая переведёт значение обьекта в нормальный то лучше перегрузку. |
| Автор: Medved 21.11.2004, 01:09 |
| Спасибо! |
| Автор: bel_nikita 21.11.2004, 03:00 |
| так же не следует забывать, что шаблоны не компилируются в какой-то один объект, способный обрабатывать любой тип данных. Вместо этого из шаблона генерируются различные объекты для каждого типа, для которого применяется шаблон. Т.е. хочу сказать, что вместо 20 Кб исходника, можно ( при не разумном использовании ) получить 30 Кб . З.Ы.: шаблоны следует использовать для контейнеров и алгоритмов |