Frage

Ich finde, dass die meisten Bücher C ++ Vorlagen betreffend sagen nichts darüber, ob es möglich ist oder nicht Initialisierungsliste in Konstruktor einer Template-Klasse zu verwenden.

Zum Beispiel, ich habe Code wie folgt:

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

Kann ich ersetzen den Konstruktor mit

Stack(): count(0), capacity(INIT), data(new T [INIT])
War es hilfreich?

Lösung

Ja. Hat der Compiler Sie sonst sagen?

Andere Tipps

Ich habe gerade versucht, und VS2008 sagt, dass es in Ordnung ist, aber es scheint ein wenig seltsam, weil einige großen Autoren, dass (Eckel zum Beispiel in seinem „Denken in C ++“) nicht tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top