【问题标题】:Can initialization list in constructors be used in template classes?可以在模板类中使用构造函数中的初始化列表吗?
【发布时间】:2010-09-18 20:23:57
【问题描述】:

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

【问题讨论】:

    标签: c++ templates constructor initialization


    【解决方案1】:

    是的。编译器有没有告诉你其他的?

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多