【发布时间】:2025-12-18 07:50:02
【问题描述】:
我有一个抽象类A,其中包含一个纯虚方法。
class A
{
public:
virtual A* doWork() = 0;
}
我有两个派生自类A 的类(它们不是抽象类)。
需要在这两个类中实现纯虚函数doWork()。
但我只想在一个类中实现这个功能(例如B类),这两个类必须派生自A。
class B :public A
{
A* doWork()
{
A* a = new B();
// do some work
return a;
}
}
当我在 C 类中调用 doWork() 时,我想要打印一些文本,说明此功能未在此处实现。
class C : public A
{
A* doWork()
{
// I want just to print some text and I don't want
// to return anything.
}
}
我试图抛出一个错误,但这不是我想要做的。
有没有更好的方法来做到这一点?
【问题讨论】:
-
如果调用者可以处理
null,您可以只打印警告并返回null -
B::不应出现在B中。C也一样。它是class,而不是Class。