类的模板,可通过模板实现接口

sqrtroot

我正在尝试编写一个基于接口的模板实现定义其模板的模板类。为了阐明我的问题,这里有一个例子。

template<typename T>
class A{
    virtual T getValue() = 0;
}

class B : public A<int>{
    //does some things and implements getValue
}

//template definition
//T should become int by passing class B
class C{
    A* aPointer;
    T previousValue;
} 

我已经尝试过模板模板(不是输入错误)语法,在这篇文章中解释得非常好。模板模板参数在C ++中有哪些用途?但是因为A的类型阻碍了B的定义,所以它不起作用。

我应该如何去创建一个确定T的模板。

用户名

您不能直接从B确定T的类型,但是可以从其接口确定T的类型。处理此问题的最佳方法是将A的typedef添加到A。

template<typename T>
class A{
    virtual T getValue() = 0;
public:
    typedef T ValueType;
}

class B : public A<int>{
    //does some things and implements getValue
}

template<class T>
class C {
    A<typename T::ValueType>* aPointer;
    typename T::ValueType previousValue;
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用模板实现派生类

来自分类Dev

使用成员函数模板实现接口的功能

来自分类Dev

为什么通过模板实现位集?

来自分类Dev

使用模板实现的通用类型容器

来自分类Dev

C ++模板实现文件扩展约定?

来自分类Dev

矩阵模板实现的不良方面

来自分类Dev

C ++模板实现循环递归

来自分类Dev

模板实现与c中的指针兼容

来自分类Dev

矩阵模板实现的不良方面

来自分类Dev

抽象类的模板实例化

来自分类Dev

检查类是否从模板的任何模板实例继承

来自分类Dev

模板化类构造函数的模板实例化

来自分类Dev

检查类是否从模板的任何模板实例继承

来自分类Dev

如何为模板实现类似于Orientation的属性

来自分类Dev

如何使用golang的模板实现级联下拉菜单

来自分类Dev

如何使用多个模板实现Django会话向导

来自分类Dev

如何为C ++函数模板实现简化的界面?

来自分类Dev

在模板实现文件中使用名称空间

来自分类Dev

使用模板实现双端队列的问题

来自分类Dev

模板实例化

来自分类Dev

显式类模板实例化的链接

来自分类Dev

C ++中类成员的模板实例化

来自分类Dev

类模板实例化中的携带类型信息

来自分类Dev

如何复制带有虚拟基类的模板实例?

来自分类Dev

通过模板传递地图实现

来自分类Dev

将类接口转换为类模板

来自分类Dev

模板基类实现为默认实现

来自分类Dev

您如何在.h接口和.cpp实现中拆分非模板类?

来自分类Dev

C ++模板模板实例化