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 回答