构造函数中的初始化列表可以用在模板类中吗?

时间:2008-10-23 18:11:41

标签: c++ templates constructor initialization

我发现大多数关于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])

2 个答案:

答案 0 :(得分:4)

是。编译器是否告诉你了?

答案 1 :(得分:0)

我刚试过,VS2008说它没关系,但似乎有点奇怪,因为一些伟大的作者不这样做(例如,Eckel在他的“Thinking in C ++”中)。