【问题标题】:Is there any way to make a constructor default values in a templated class?有没有办法在模板类中使构造函数默认值?
【发布时间】:2020-05-09 12:05:31
【问题描述】:

我知道在 C# 中你可以这样做:

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

分配给模板化的id值数据类型的默认值。我怎样才能在 C++ 中做同样的事情?

【问题讨论】:

标签: c# c++ templates


【解决方案1】:
template <class T>
class Account
{
    T id{};
};

【讨论】:

    【解决方案2】:

    如果你想让构造函数默认参数,你可以提供一个构造函数并执行如下操作

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2011-07-15
      • 2022-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多