小编Hub*_*cat的帖子

有没有办法在基类的函数中获取派生类的类型?

我正在寻找一种方法来在基类的函数中使用派生类的类型,类似于模板化函数。

class Base
{
    T foo() const
    {
        return T(*this);
    }
}

class Derived : public Base
{
}
Run Code Online (Sandbox Code Playgroud)

这类似于我想用它来做什么,这样我就不必在每个派生类中将 foo 覆盖为纯虚函数。目标是找到一种方法让 foo 中的 T 成为派生类的类型。例如,在 Derived 类型的对象上调用 foo 应该调用如下所示的 foo 版本:

Derived foo() const
{
    return Derived(*this);
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能不是你能做的,但有人可以确认吗?

c++ abstract-class types function

2
推荐指数
1
解决办法
38
查看次数

标签 统计

abstract-class ×1

c++ ×1

function ×1

types ×1