L'elenco di inizializzazione nei costruttori può essere utilizzato nelle classi di modelli?
-
04-07-2019 - |
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])
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