【发布时间】:2014-01-17 03:23:41
【问题描述】:
我有一个 BaseInterface 类,有一个由派生类实现的虚拟 void execute():
class BaseInterface
{
public:
virtual void execute(int a) = 0;
}
而且我有大量的派生类覆盖了执行 void:
class ProcessN : public BaseInterface
{
public:
void execute(int a);
}
我的一个派生类的执行 void 有一个错误。但是有大量的派生类。很难一一检查。我很难找到错误。
C++ 中是否有一种方法可以通过基类找出当前正在处理哪个派生类?
编辑: 好的,在对 cmets 进行了有用的讨论后,我改进了我的问题:
我可以在 BaseInterface 类的构造函数中实现一些东西,以打印出当前处理派生类的信息吗?
【问题讨论】:
-
如果您已经能够识别出其中一个派生类在
execute中存在错误,那么大概有一些类似ptrToBaseIntfThatPointsToObjOfProcessK->execute(0);的代码会触发错误?考虑在调试器中设置条件断点。 -
这个 bug 不是简单可调试的,它会在视图上产生视觉差异。
-
是否可以从基类的构造函数中得到一个ptofderivedclass?
标签: c++