我有一个正在创建的模板类,它接受自定义对象。它看起来有点像这样。
template<typename T1,typename T2>
class myClass
{
public:
myClass(const T1 ¶m1, const T2 ¶m2);
}
template<typename T1, typename T2>
myClass<T1,T2>::
myClass
(const T1 ¶m1, const T2 ¶m2)
{
T1.customFunction(); //doesn't compile
}
所以我希望无论何时使用这个模板类,使用它的人都有责任确保类 T1 有一个名为 customFunction() 的函数。很公平,问题是 customFunction 在编译时必须保证为 const,因为它是在常量参数(param1)上调用的,但是如果 T1 本质上是一个虚拟类,这怎么可能呢?