2009-10-20 56 views
0

我有一个基类声明了一个虚函数,并且有一大组继承自这个类的子类,其中一些子类可以覆盖这个函数。现在我需要改变基本函数的行为(使它不是虚拟的,并将可重写的功能移到不同的地方),我想知道是否有一种快速的方法来找到覆盖此函数的所有类(在编译时或编译时)。编译器是VC++。快速找到覆盖特定功能的所有子类的方法?

任何想法?

回答

0

我怀疑用适当的咒语,Doxygen可能会创建一个这样的图。

一个更简单的方法可能是使该函数在基类中是私有的。这应该给每个尝试覆盖它的错误消息。它也会给每个尝试使用它都带来错误,但听起来你可能需要识别这些地方。

+0

默认情况下Doxygen会这样做(假设你已经设置它来记录所有私人成员)。 – 2009-10-20 14:47:36

1

您可以更改基类的虚函数的返回类型。然后,由于倍率是不合法的编译器应该产生的派生类的错误

0

如果你有机会到合适的壳(只改变返回值类型是不允许的。): 查找其中的子类中的所有文件位置应该很容易与“grep”。搜索所有这些文件并删除函数可以用你最喜欢的编辑器和一个小的宏来完成,它搜索函数名并删除声明。删除函数定义(如果不是内联)应该是类似的。