说我有一些源代码MyAmoeba.cpp,带有相关的头文件MyAmoeba.h.在MyAmoeba.cpp中包含MyAmoeba.h是不错的做法?(我假设它从来没有必要,除了可能在一些设计糟糕的情况下,头文件包含一个宏来更改源文件)
据我所知,执行上述操作意味着如果您更改MyAmoeba.cpp中的任何内容的签名,但忘记在MyAmoeba.h中执行此操作,则错误将在编译阶段而不是在链接阶段发生,但我不确定这是好事/坏事/无关紧要的事情.
我对c ++ btw相当新,如果这个问题无论如何都是荒谬的(如果是这样的话,请指出我)
编辑:我正在玩一个只包含函数声明的头文件,但没有类/结构/等定义.从其他来源和下面的答案,在我看来,当头文件只有声明时,没有必要在相关的源文件中包含头文件,但如果头文件中有任何定义,那么它确实必要的(因为您可以根据需要多次声明,但只定义一次,并且显然可以使用定义代替声明,因此源文件中的函数定义将同时计为我的声明).
什么?
它几乎总是必要的,因此几乎总是如此.
如果您没有声明,那么您应该如何提供定义?
你不能只有像这样的代码
void MyAmoeba::subdivide()
{
}
Run Code Online (Sandbox Code Playgroud)
不首先声明的MyAmoeba类,所以编译器可以知道,一个调用的方法subdivide()确实是一部分MyAmoeba::空间.
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |