我有一个抽象类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。 – whd
'B ::'不应该出现在'B'中。 'C'一样。它是'class',而不是'Class'。 – Biffen