我希望强制要求所有派生自基类的类使用特定的API,通常你需要使用抽象基类并定义纯虚函数来实现。然而,当涉及到需要返回派生类型的函数时,该如何处理?如何强制要求使用此类型的函数?
struct base
{
virtual base func() = 0;
};
struct deriv1 : base
{
deriv1 func();
};
struct deriv2 : base
{
deriv2 func();
};
这个例子将会出现一个错误,类似于“成员函数的无效抽象返回类型”。我看过一些答案,建议返回指针,但我不想为此涉足动态内存,并且跟踪所有已分配的指针将是一种特别的痛苦。有什么好的想法吗?