再谈C++代码阅读

有时候,类之间的继承关系比较复杂,怎样进行快速的阅读呢?以下是一点经验:

首先找到那个要分析的类的cpp文件,然后找到编译该文件的命令行。修改该命令行,让该命令行只做预处理的工作,即加上-E参数,去掉-o参数,并将输出重定向到一个临时文件中。比如叫tt.cpp。

这样做的目的是,把所有跟这个类相关的头文件都拿到一起(靠编译器)。因为要实现正确的编译,这是必须的。

拿到tt.cpp后,找到其中相关的类声明,比如classA , classSubA , classSubSubA , 利用vi的w命令将这些定义写入到另一个文件,比如说ss.cpp。
其中w命令的具体用法是
:100,120 w ss.cpp
:180,220 w > ss.cpp

这样就把100到120行,180到220行的代码写到ss.cpp中,这样的目的是进一步提取需要的类信息。 为后面的分析做准备。

第三步就是读ss.cpp了,当然把这些信息放在一起,还有更大的好处,就是利用vi的taglist插件, :TlistOpen ,(见前面关于vim taglist插件的文章)。 利用这个插件可以把各个类中定义的成员及函数都列在一起。

如此,就算经过多层继承,你也能轻易的将该类的所有成员看的一清二楚。



本文地址: http://www.bagualu.net/wordpress/archives/2321 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注