c++ - 特殊类的虚方法

标签 c++ templates virtual

是否可以在已经专门化的类上定义虚方法?例如

template
<class T_DataType>
struct Interface
{
T_DataType data;
...
};

struct NewInterface : Interface<int>
{
virtual
int return_data() = 0;
...
}

struct SubInterface : NewInterface
{
virtual
int return_data();
...
}

int SubInterface::return_data(){ return data;}

最佳答案

是的,代码有效并按预期工作。

在这种情况下,您不需要特化 SubInterface,而是从模板特化中继承它。

关于c++ - 特殊类的虚方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35731102/

相关文章:

C++在构造函数中选择类成员的模板类型

C++11 性能 : Lambda inlining vs Function template specialization

c++ - 类定义需要参数吗?

operating-system - Linux 中的虚拟软盘驱动器

c++ - 体系结构 x86_64 : . .. "_main"的 undefined symbol ,引用自: implicit entry/start for main executable

c++ - 在这行代码 “int **v = new int*[n]; ”中如何分配内存?

c++ - LLVM JIT 编译的程序找不到外部函数

C++ std::string 与 !=、< 和 > 的用法

c++ - 如何将非静态成员函数作为模板参数传递给另一个成员函数?

c++ - C++虚函数面试题