2

C++ テンプレートに関するほとんどの本は、テンプレート クラスのコンストラクターで初期化リストを使用できるかどうかについて何も述べていません。

たとえば、次のようなコードがあります。

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

コンストラクターを置き換えることはできますか

Stack(): count(0), capacity(INIT), data(new T [INIT])
4

2 に答える 2

4

はい。コンパイラは別のことを教えてくれましたか?

于 2008-10-23T18:15:35.973 に答える
0

私は試してみたところ、VS2008 は問題ないと言っていますが、一部の優れた作成者はそれを行わないため、少し奇妙に思えます (たとえば、Eckel は彼の「Thinking in C++」で)。

于 2008-10-23T18:21:32.467 に答える