覆盖接口中的模板成员

tea2code

是否可以使用可以在派生类中覆盖的模板方法声明某种类型的基类?以下示例:

#include <iostream>
#include <stdexcept>
#include <string>

class Base
{
public:
    template<typename T>
    std::string method() { return "Base"; }
};

class Derived : public Base
{
public:
    template<typename T>
    std::string method() override { return "Derived"; }
};

int main()
{
    Base *b = new Derived();
    std::cout << b->method<bool>() << std::endl;
    return 0;
}

我期望Derived作为输出,但它是Base我认为有必要制作一个模板包装器类,该类将实现类作为模板参数接收。但我想确定。

马可·A

1)为了实现多态性,您的函数应标记为virtual

2)模板化函数是在POI上实例化的,并且不能是虚拟的(签名是什么?您保留多少个vtable条目?)。模板函数是一种编译时机制,虚函数是一种运行时机制

一些可能的解决方案包括:

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与模板成员功能的接口

来自分类Dev

与模板成员功能的接口

来自分类Dev

使用派生接口中的 List 覆盖 IReadOnlyList

来自分类Dev

覆盖嵌套打字稿接口中的属性

来自分类Dev

使用F#在类/接口中动态定义几个成员

来自分类Dev

在扩展接口中声明成员与在实现中声明成员之间有什么区别?

来自分类Dev

在扩展接口中声明成员与在实现中声明成员之间有什么区别?

来自分类Dev

我可以在C#的子接口中覆盖父接口方法吗?

来自分类Dev

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

来自分类Dev

打字稿接口中可选成员的需要是什么?

来自分类Dev

覆盖compareTo()方法时,为什么要使用Comparable接口中的compareTo()?

来自分类Dev

implem 不是抽象的,并且不会在扩展接口中覆盖抽象方法 FinalScore()

来自分类Dev

接口中是否存在不相关的方法会破坏文本/模板?

来自分类Dev

c ++-通过抽象模板基类接口指针访问派生类方法,而接口中没有显式类型

来自分类Dev

接口中的参数加倍

来自分类Dev

接口中的属性

来自分类Dev

接口中的静态方法

来自分类Dev

Typescript:接口中的常量

来自分类Dev

Java接口中的变量

来自分类Dev

在接口中实现委托

来自分类Dev

接口中的嵌套枚举

来自分类Dev

接口中的默认方法

来自分类Dev

用可见性修饰符覆盖接口成员函数的正确语法是什么?

来自分类Dev

类模板与成员模板

来自分类Dev

接口和覆盖接口的方法

来自分类Dev

在通用接口中使用接口

来自分类Dev

通用接口中的通用接口参数

来自分类Dev

通用接口中的通用接口参数

来自分类Dev

静态成员和接口