【发布时间】:2015-09-03 20:18:36
【问题描述】:
我有一个带有模板构造函数的类:
class TCons {
template <typename T> TCons(T t);
}
专门用于实现的:
template <> TCons::TCons(int i) { doMyStuff(i); }
我也有一个基类的特化:
template <> TCons::Tcons(TBase &t) { doMyStuff(t); }
但是当我尝试使用派生对象作为参数初始化 TCons 对象时,这似乎不起作用。
class TDeriv: public TBase { };
TDeriv td;
TCons tc = td;
我无法使用指针来解决此问题(因为所有内容都包含在宏中)。问题出现在链接阶段。
只是错了,还是我遗漏了什么?
【问题讨论】:
-
修正错别字和语法,以便您的代码编译。
-
为什么使用专门化而不是简单的重载?
-
输
template<>