保持cpp文件和头文件同步的最佳工作流程是什么?

时间:2010-07-14 23:20:35

标签: c++

我正在尝试学习用于Qt开发的C ++,而且我有点害怕头文件。我想知道的是,保持* .cpp和* .h文件同步的最佳工作流程是什么?例如,编写类文件然后将相关信息复制到标题是常态吗?

很抱歉,如果这没有任何意义......我只是在寻找一个有效的工作流程。

谢谢!

  • 贾斯汀

5 个答案:

答案 0 :(得分:3)

所以:

  • 如果标题中的内容由客户端使用而不是在cpp中,则会出现链接器错误。
  • 如果cpp中的某些内容未定义或在.h
  • 中的定义不同,您将收到编译错误

你担心什么情况?

答案 1 :(得分:3)

  

例如,编写类文件然后将相关信息复制到标题是常态吗?

虽然没有单一的标准方法,但通常最好:

  • 首先考虑公共接口
  • 将其放在标题
  • 相应地在源文件中实现
  • 根据需要更新标题

直接进入实现可能会在以后进行痛苦的重构。

答案 2 :(得分:1)

  1. 创建使用您的类/函数的测试代码(这样您甚至可以在编写任何代码之前使用最终结果)
  2. 使用类和方法创建标题。
  3. 在cpp文件中实现这些方法
  4. 如果您遇到必须更改方法签名的情况,则需要手动将其更改为地点(标题+来源)。

    您可以支付少量资金并购买 Visual Assist X 。使用Visual Assist X,右键单击cpp文件中的方法,选择 Refactor - >更改签名。执行更改并点击确定。它在两个地方都有所改变。

    因此,简而言之,没有办法让它们自动保持同步,但使用正确的重构工具,您的生活会更好。

答案 3 :(得分:1)

一般来说,对于第一个版本,我在.h中编写类文件,完成后我将方法声明复制到.cpp,并将它们更改为定义(即方法及其实体)。在这个阶段,我只声明了类的公共方法,因为我更关心它的接口而不是内部。

后来,当我实现公共方法时,如果我需要一个新的私有方法,我首先在需要的地方调用它,所以我得到了很好定义的参数。然后我在.h中写下它的声明并返回.cpp来写它的正文。

您可能会对Tracer Bullet Design的概念感兴趣,该概念非常适合此工作流程。它在The Pragmatic Programmer:

一书中有所描述

http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?ie=UTF8&s=books&qid=1279150854&sr=8-1

此页面包含简要说明 http://www.artima.com/intv/tracer2.html

答案 4 :(得分:0)

你同时打开它们(我经常使用水平分割),当你改变一个文件时,你改变另一个文件。它与您编写适合单个.cpp文件的程序时,如何将原型保持在文件顶部与文件底部的函数定义同步的方式相同。