2008-10-23 5 views
2

Я нахожу, что большинство книг по шаблонам C++ ничего не говорят о возможности или нет использования списка инициализации в конструкторе класса шаблона.Может ли список инициализации в конструкторах использоваться в классах шаблонов?

Например, у меня есть такой код:

template <class T> 
class Stack { 
    T* data; 
    std::size_t count; 
    std::size_t capacity; 
    enum {INIT = 5}; 
public: 
    Stack() { 
     count = 0; 
     capacity = INIT; 
     data = new T [INIT]; 
    } 

Могу ли я заменить конструктор с

Stack(): count(0), capacity(INIT), data(new T [INIT]) 

ответ

4

Да. Сообщал ли компилятор об ином?

0

Я только что попробовал, и VS2008 говорит, что все в порядке, но это кажется немного странным, потому что некоторые великие авторы этого не делают (например, Эккель в своем «Мышлении на C++»).