除了使用基本类型或转换的显式初始化之外,还有其他方法可以为构造函数中的模板类成员赋值吗?
template <class T>
struct A
{
public:
T member;
A() :member(T()) // or :member(static_cast<T>(1.0f))
{}
};
我想在构造函数中将值1.0赋给member
。我可以不进行投射吗?
答案 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)
{}