怎样在别人已有代码的基础上进行C++开发?

von_karman 2014-07-01 05:18:53
后生新学,C++小白,编程经验仅限于用C和fortran设计一些科学计算类的程序,最近在一款开源计算流体力学软件的基础上对其进行开发,虽然C++语法都懂,但是没有关于软件工程和设计模式的知识,看代码的时候经常钻的很深,一路找到基类里面,没有头绪,非常痛苦。想请教各位大侠,对于一个面向对象的软件,我应该怎样在它的基础上开发呢?有哪些原则性、指导性的注意事项?是不是更应该关心一个类提供的方法,而不是关心这个类的数据成员和具体实现方法呢?
...全文
179 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
von_karman 2014-07-04
  • 打赏
  • 举报
回复
不一一回帖了,多谢楼上各位指点!
赵4老师 2014-07-02
  • 打赏
  • 举报
回复
使用Source Insight软件。
勤奋的小游侠 2014-07-02
  • 打赏
  • 举报
回复
你还是一个初学者,真的不应该看源码,你应该还是物理系的学生,不是计算机科班出生,你看懂接口,可以调用,能够完成你的任务就可以了,你不应该去做计算系学生做的事情。
黑娃 2014-07-02
  • 打赏
  • 举报
回复
一开始没必要追太深,尤其是你还是初学者,追进去只能徒增烦恼,从总体上把握,把功能和代码模块对应上就行了,再理解了需求后再有的放矢的深入。
yangyunzhao 2014-07-01
  • 打赏
  • 举报
回复
引用 4 楼 von_karman 的回复:
[quote=引用 3 楼 yangyunzhao 的回复:] 我的经验是,先让他的代码能跑起来。然后从main开始,全部单步一次。基本就了解的7788了
这个软件是在linux系统下开发的,只有一个C文件,代码很少,main程序直接调用的.so共享库,虽然也提供了库的源代码,这样也可以单步吗?[/quote] .so有没有源码?是不是开源库? 如果你没有这个so的源码,至少有这个so的说明文档吧?两者必有其一吧。 单步跟踪,然后遇到so里面的函数,要么读文档要么读源码。 跑个几次,至少可以把大致流程弄清楚了啊。 阅读源码也好,单步跟踪也好。一定要有分层的概念,可能你一开始分的不正确,但也没有关系。 通常来说,你不可能一次性了解所有细节的。最好的办法就是一层层深入
von_karman 2014-07-01
  • 打赏
  • 举报
回复
引用 2 楼 layershow 的回复:
通常是先有个总体的了解,再去钻细节,看代码的时候,有些调用你只要知道它干了什么就行,先不要进去看 也有些人喜欢一路看到底,个人喜好,你只是累了,加油吧,看代码是这样的,以后你看代码会越来越快
简直感觉无力回天啊,累觉不爱。。。。
von_karman 2014-07-01
  • 打赏
  • 举报
回复
引用 1 楼 FightForProgrammer 的回复:
看头文件提供的接口,把握整体功能。可以使用SourceInsight软件看调用流程
linux下有没有类似的工具软件?
von_karman 2014-07-01
  • 打赏
  • 举报
回复
引用 3 楼 yangyunzhao 的回复:
我的经验是,先让他的代码能跑起来。然后从main开始,全部单步一次。基本就了解的7788了
这个软件是在linux系统下开发的,只有一个C文件,代码很少,main程序直接调用的.so共享库,虽然也提供了库的源代码,这样也可以单步吗?
yangyunzhao 2014-07-01
  • 打赏
  • 举报
回复
我的经验是,先让他的代码能跑起来。然后从main开始,全部单步一次。基本就了解的7788了
layershow 2014-07-01
  • 打赏
  • 举报
回复
通常是先有个总体的了解,再去钻细节,看代码的时候,有些调用你只要知道它干了什么就行,先不要进去看 也有些人喜欢一路看到底,个人喜好,你只是累了,加油吧,看代码是这样的,以后你看代码会越来越快
FightForProgrammer 2014-07-01
  • 打赏
  • 举报
回复
看头文件提供的接口,把握整体功能。可以使用SourceInsight软件看调用流程

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧