初始化列表模板变量



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

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分配给例如字符(我知道这一点)。我应该如何正确初始化def_value

我应该如何正确初始化def_value

简单地像这样,例如:

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

或者这个:

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

最新更新