Предположим, у меня есть объект, который имеет переменную-член некоторого типа шаблона. Итак, в объявлении класса должно быть что-то вроде этого:
// This is just the declaration of bar which is a member of some class.
templatizedType<Foo> bar;
Теперь, когда я хочу инициализировать bar
, почему я должен сделать
// This is the initialization. Note that I am assuming that templatizedType has a
// constructor that takes an argument of type T*. Presumably, this is happening
// somewhere inside whatever class has declared bar as a member.
templatizedType<Foo> bar(new Foo());
вместо простого
bar(new Foo());
РЕДАКТИРОВАТЬ (пытается уточнить): По сути, мне кажется, что тип бара (включая параметризованный тип) уже прописан в его объявлении в качестве члена класса и, следовательно, не должен требовать повторения при инициализации.
Если ничего из этого не имеет смысла, дайте мне знать (я обнаружил это главным образом через метод проб и ошибок и некоторых полезных людей в IRC, поэтому, если мое понимание происходящего здесь неверно, помощь в этом также будет с благодарностью.)