初始化列表模板变量

时间:2017-02-01 17:41:55

标签: c++ class templates constructor initialization-list

我试图在网站上寻找这个,但我找不到我需要的确切内容 基本上我需要知道在默认构造函数中初始化模板变量的正确方法是什么 例如:

template<typename T>
class myClass{
   T *arr;        // no problem with this.
   int size;
   int capacity;
   T def_value;   // how do I initialize this template variable in the constructor?

我尝试过类似的事情:

myClass(): arr(0), size(0), capacity(0), def_value(0){};

但是它没有编译,因为我无法将0分配给,例如,一个char(我知道)。 我该如何正确初始化def_value

1 个答案:

答案 0 :(得分:2)

  

我应该如何正确初始化def_value

简单地说,例如这样:

myClass(): arr(nullptr), size(0), capacity(0), def_value() {};
                                            // ^^^^^^^^^^^

或者这个:

myClass(): arr(nullptr), size(0), capacity(0), def_value{} {};
                                            // ^^^^^^^^^^^