有什么方法可以使模板类中的构造函数成为默认值?

时间:2020-05-09 12:05:31

标签: c# c++ templates

我知道您可以在C#中做到:

class Account<T>
{
    T id = default(T);
}

,它为模板化的id值分配数据类型的默认值。如何在C ++中做同样的事情?

2 个答案:

答案 0 :(得分:5)

template <class T>
class Account
{
    T id{};
};

答案 1 :(得分:1)

如果要将构造函数设为默认参数,则可以提供构造函数并执行以下操作

template <class T>
class Account<T>
{
    T id;
    Account( T id = T{}) : id{ id } {}
};

但是,如果您只想使用默认构造函数(如您提供的代码一样),请使用T id{};而不是T id = default(T);