c++ - 初始化模板类成员的问题

标签 c++ templates class-constructors

我的代码无法编译。下面是我的代码

template <typename T>

class TemplateClass
{

    const T constMember;
    public:

    TemplateClass()
    {
        constMember = T();
    }

};

int main()
{
   TemplateClass <int> obj;
}

我收到这个错误:

error: uninitialized member 'TemplateClass<int>::constMember' with 'const' type 'const int'

我以为构造函数是用来初始化数据成员的。怎么了????

最佳答案

您没有初始化 const 成员,您只是在分配给它。

成员的初始化can only be done using a member initialization list .

例如:

TemplateClass() : constMember(T()) //initializes constMember to 0
{} 

关于c++ - 初始化模板类成员的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761325/

相关文章:

c++ - 计算中常用值的预定义 - 它会改变什么吗?

c++ - Qt 插槽和 C++11 lambda

C++矩阵乘法类型检测

C++ - std::enable_if 更多类型

c++ - 在构造函数定义中调用函数后收到 Segmentation Fault 11 错误?

java - 如何将一个构造函数的值设置为另一个构造函数的值?

c++ - 如何在 C++ 中将外部类的模板类型用作内部类中的字段?

c++ - C中的返回地址

c++ - 用于模板实例化的 Clang/g++ 选项

java - java中构造函数的继承