使用文字为模板类型赋值

时间:2011-12-18 14:07:25

标签: c++ templates constructor

除了使用基本类型或转换的显式初始化之外,还有其他方法可以为构造函数中的模板类成员赋值吗?

template <class T>
struct A
{
public:
   T member;

   A() :member(T()) // or :member(static_cast<T>(1.0f))
   {}
};

我想在构造函数中将值1.0赋给member。我可以不进行投射吗?

2 个答案:

答案 0 :(得分:2)

是的,使用一个整数,可以隐式转换为任何数字类型:

template <class T>
struct A
{
public:
   T member;

   A() : member(1)
   {}
};

int main()
{
  A<int> a1;
  A<double> a2;
  A<float> a3; 
  return 0;
}

答案 1 :(得分:0)

这有什么问题:

A() :member(1)
{}