Domanda

Trovo che la maggior parte dei libri riguardanti i modelli C ++ non dica nulla sulla possibilità o meno di utilizzare l'elenco di inizializzazione nel costruttore di una classe di modelli.

Ad esempio, ho un codice come questo:

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 sostituire il costruttore con

Stack(): count(0), capacity(INIT), data(new T [INIT])
È stato utile?

Soluzione

Sì. Il compilatore ti ha detto diversamente?

Altri suggerimenti

Ho appena provato e VS2008 dice che è OK, ma sembra un po 'strano perché alcuni grandi autori non lo fanno (Eckel, per esempio, nel suo "Pensare in C ++").

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top