Pregunta

Creo que la mayoría de los libros sobre plantillas de C ++ no dicen nada acerca de si es posible o no usar la lista de inicialización en el constructor de una clase de plantilla.

Por ejemplo, tengo un 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];
    }

¿Puedo reemplazar el constructor con

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

Solución

Sí ¿El compilador te dijo lo contrario?

Otros consejos

Acabo de probar y VS2008 dice que está bien, pero parece un poco extraño porque algunos grandes autores no lo hacen (Eckel, por ejemplo, en su "Pensamiento en C ++").

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top