gpt4 book ai didi

c++ - 合并头文件和cpp文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:52 27 4
gpt4 key购买 nike

我正在开发一个 C++ 项目,我在其中将每个类实现为单独的 .h 文件和 .cpp 文件。我发现这不值得麻烦。 - 我在两个文件之间来回编辑 - 这给我带来了很多意想不到的麻烦(必须添加预声明,显式导出模板类) - 我没有看到直接的好处,我的代码库必然会保持相对较小(比如 < 10,000 行代码)并且编译时间并不长。

我的问题有两个方面

a) 我可能错过了将实现和原型(prototype)分开的好处吗?

b) 如果没有,是否有任何免费工具或 ide 能够将 cpp 文件合并回头文件?

最佳答案

不要这样做。对于大多数简单的类,如果您想公开该类以在其他地方使用,您应该始终*在 .h 中声明该类。头文件,以及 .cpp 中的定义(代码)文件。

然后您包括 .h文件在任何你想使用类的地方(即实例化它)。但是,链接器负责在每个 .cpp 之后“链接”代码。单独编译。

我的问题是,“你还会怎么做?”我看到许多 n00bs 犯的一个错误是 #include "foo.c .那么发生的事情是,您不仅失去了独立编译,而且在链接时遇到问题,因为 同一类 有多个定义。记住,当你 #include一个文件,它确实会出现在你说的那个文件的主体中。

[*] 当然也有异常(exception)情况:

一个异常(exception)是模板类。这些必须完整地放在头文件中。原因是因为在使用类型参数实例化类之前不会生成实际代码。然后,编译器基本上在需要时用指定的类型“填充”类的主体。由于类型在此之前未知,因此不能独立编译并稍后链接。

关于c++ - 合并头文件和cpp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11233756/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com