【发布时间】:2019-11-23 10:07:13
【问题描述】:
我的模板类有问题。我像这样指定了模板类的默认类型:
template < class T = float >
class apple {
public:
T x;
apple(T x): x(x) {}
}
但是,当我这样创建对象时:
apple obj(2);
除非我这样做,否则类型会变成 int:
apple<float> obj(2);
如何让它保持浮动?
【问题讨论】:
-
看来您使用的是 c++17。由于 c++17
T可以从初始化程序推导出来,在你的情况下它是2-int。 -
是的,我使用的是 c++17
-
它使用您传递的文字值的类型。
apple obj(2.0f)用于浮动,apple obj(2.0)用于双
标签: c++ class templates template-specialization