LINUX.ORG.RU

Когда использовать шаблоны?

 


0

2

Допустим мой класс может принимать только 2 (ну может 3) типа параметров. И полагается, в основном, на базовый класс этих типов (он у них один). Нужен ли здесь шаблон, или достаточно просто унаследоваться от базового класса? Чтобы было немного конкретнее, речь о QWidget, QDialog etc.

★★★★★

Допустим мой класс может принимать только 2 (ну может 3) типа параметров.

что это значит? 2-3 разных конструктора?

И полагается, в основном, на базовый класс этих типов (он у них один).

если я правильно понял, вызываешь просто конструктор родителя

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

что это значит? 2-3 разных конструктора?

Не, что шаблонный класс полагается на методы упомянутого QWidget, что не совсем шаблон по определению. Т.е. шаблон может принимать только QWidget и потомков. Вот и вопрос, когда нужно шаблон, а когда нет.

UVV ★★★★★
() автор топика

В зависимости от контекста. Шаблонный duck typing быстрее, но типы объектов не всегда известны на этапе компиляции, например к гетерогенному списку ты свой метод уже не применишь. В общем случае, когда лишний виртуальный вызов не является проблемой, ООП проще и понятнее для code monkeys, которым поддерживать код.

anonymous
()

template ? тогда когда алгоритм универсален, тогда тип(ы) будут аргументами шаблонов

anonymous
()
Ответ на: комментарий от anonymous

Ну вот я с этой стороны и мыслю. Думаю, что наследование правильнее в этом случае.

UVV ★★★★★
() автор топика
Ответ на: комментарий от anonymous

тогда когда алгоритм универсален

Ещё можно, используя специализацию (полную или частичную) ограничить типы, передаваемые в шаблон. Бывает полезно порой. Ну и факториал посчитать на compile-time, куда-ж без этого.

one_more_hokum ★★★
()
Ответ на: комментарий от UVV

qt and templates o_O? no way пожалуй например!

anonymous
()
Ответ на: комментарий от anonymous

Я надеюсь, вы помните, что Qt MOC не умеет работать с шаблонами?

Если не объявлять свои сигналы/property, то пофиг.

anonymous
()
Ответ на: комментарий от one_more_hokum

Слабак. Ъ-последователи Александреску считают факториал даже без variable templates.

Ъ-последователи Александреску ушли за ним в землю обетованную D, так что ты просто провокатор!

anonymous
()
Ответ на: комментарий от UVV

не... anonymous может быть совестливым, просто у него диссоциативное расстройство идентичности %)

metawishmaster ★★★★★
()
Ответ на: комментарий от anonymous

Анонимус - ум, честь и совесть ЛОРа

Гастроэнтеролога, проктолога и хирурга.

one_more_hokum ★★★
()
Ответ на: комментарий от anonymous

Ъ-последователи Александреску ушли за ним в D

Учитывая, что Александреску с плюсами не завязывал, то 4.2.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

Учитывая, что Александреску с плюсами не завязывал, то 4.2.

Имеющий глаза да увидит:

http://erdani.com/

anonymous
()
Ответ на: комментарий от anonymous

а вот не залезь Александреску в Ди, может из Ди получилось бы что годное. Хотя Брайт тож... позволил себя Александреску искусать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.