如果我有一个名为Wood的类和一个名为
斩波器,以及接受对
像这样的chooper
KeepWarm::burnFuel( Chopper <Wood>& wood_chopper );
我该如何转换或转换Chooper,其中CedarWood是从Wood派生的,以便KeepWarm :: burnFuel可以接受它?
回顾一下……
class Wood
{
};
class CedarWood: public Wood
{
};
template class T;
class Chopper
{
Chopper( const T value );
};
class KeepWarm
{
void burnFuel( Chopper<Wood>& wood_chopper );
};
Chopper<CedarWood> some_wood;
//
KeepWarm::burnFuel( some_wood ); // the troublesome line, is this kind of thing possible?
最佳答案
不,这是不可能的,因为Chopper<Wood>
实际上与Chopper<CedarWood>
无关。
您可以通过将burnfuel
函数作为模板函数来解决此问题:
template<typename T>
void burnfuel(Chopper<T>& chopper);
关于c++ - 模版类的转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28110719/