【发布时间】:2014-01-24 12:10:53
【问题描述】:
每当我开发 C++ 类时,我都必须在两个地方更新代码,这让我觉得非常累。在开发过程中,我更改了方法的声明、在此处或此处添加 const、删除 & 引用等发生了 100 多次(至少对于每个私有方法)。我真的很讨厌每次做一些小改动时都必须打开第二个文件(头文件),而且我看到自己试图避免在开发过程中进行私有接口更改,只是因为我想避免这种情况痛。 (你可能认为我很懒惰。我很懒惰,但这也是一种真正的痛苦,它阻止了我尽可能高效地工作。)
通常,我的所有声明都在标题中,所有定义都在源代码中。我不关心内联或聪明的小优化技巧。我喜欢 C++ 的许多方面,但如果重构和开发接口像 Java 一样简单,我会更喜欢它。
有处理这种情况的提示吗?
【问题讨论】:
-
我也开始讨厌一些堆栈溢出,因为无论你输入什么问题,如果它不是一个愚蠢的问题,每个有经验的程序员都可以自己找到答案,但是取而代之的是一个更笼统的问题,仍然有明确的定义,将在
-
@Hinton 如果您能够准确描述“新”问题,我想您可以自己生成这样的统计数据:data.stackexchange.com/stackoverflow/query/new
-
I literally hate it that I have to open a second file (the header file) every time I do a little change你不应该做很多小改动。您应该花费大量时间为您的类设计一个接口,然后冻结该接口。很少需要更改它,添加引用类型或“在这里和那里添加const”。这是您的设计和开发过程中的失败,而不是语言。 -
当我在没有太多事先设计的情况下处理小型 C++ 项目时,我倾向于将声明和定义都保存在同一个 cpp 文件中,然后在准备好时拆分一个标题。否则,是的,您应该先设计界面。另请记住,这不是 Java,因此您不必将每个函数都放在类中。您可以创建助手
static并将它们保留在定义(cpp)部分中。 -
@LightnessRacesinOrbit “你应该花很多时间为你的类设计一个接口,然后冻结那个接口。”这取决于您项目的阶段(例如 Hinton 上面所说的)。 BDUF 是一个通常不会很好用的东西。您通常会在进行大量小改动后冻结界面。