Pergunta

Eu acho que a maioria dos livros sobre modelos C ++ não diz nada sobre se é possível ou não a lista o uso de inicialização no construtor de uma classe de modelo.

Por exemplo, eu tenho um código como este:

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];
    }

Posso substituir o construtor com

Stack(): count(0), capacity(INIT), data(new T [INIT])
Foi útil?

Solução

Sim. Será que o compilador dizer o contrário?

Outras dicas

Eu apenas tentei e VS2008 diz que é OK, mas parece um pouco estranho, porque alguns grandes autores não fazem isso (Eckel, por exemplo, em seu "Pensando em C ++").

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top