具有不同数据类型的纯虚方法
|
我正在为我的容器类派生一个基类,以便可以维护一致的接口。当前看起来像这样:
template <typename Datatype>
class BaseClass
{
public:
virtual Datatype Foo() = 0;
virtual Datatype Bar() = 0;
};
template <typename Datatype>
class DerivedClass: public BaseClass<Datatype>
{
public:
virtual Datatype Foo()
{
}
virtual Datatype Bar()
{
}
};
但是,对于我的某些派生类,Foo()
和Bar()
可能需要具有不同的返回类型。在基类中没有每种不同的返回类型的模板参数的情况下,如何为派生类提供一些空间来更改此类事情?
编辑:
派生类使用的类型可能完全不同且不变。实际上,除方法名称外,不保证派生类具有任何共同点。
没有找到相关结果
已邀请:
6 个回复
冉案
种不同的数据类型。唯一的方法是使方法
受到限制,因为
方法不能作为模板。
徐百晴墓斜
亲奋漏
如果您有多种类型,这可能很快就会失控。
裸雷胜檀哭
念炯
功飘
上面的程序返回了以下内容: 加上
:
使用Visual Studio 2005(12):
尽管此示例显示了如何执行此操作,但AProgrammer给出的答案显示了一种使用特征处理它的好方法。上面的示例适用于基本数据类型,但不适用于用户定义的类型。要处理用户定义的类型,必须采用traits。请参阅Jossutis的\“ C ++模板\”或\“现代C ++设计\”以了解有关特征的更多信息。