我正在寻找一种方法来在基类的函数中使用派生类的类型,类似于模板化函数。
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)
我知道这可能不是你能做的,但有人可以确认吗?