C++ 头文件约定

标签 c++ naming-conventions header-files

我正在使用 C++ 开发一个小游戏,我使用了 Eclipse CDT 的类生成器。它创建了一个包含类定义的 .h 文件和一个包含所述类的无主体方法的 .cpp 文件。

因此,如果我遵循模板,我将得到一个包含方法声明的 .cpp 文件和一个包含方法主体的 .cpp 文件。但是,我不能在另一个文件中包含一个 .cpp 文件。

那么 C++ 中类和包含文件的约定是什么?我所做的是在 .h 文件中的类声明下填写方法体,并删除 .cpp 文件。

最佳答案

您不必包含 .cpp 文件。包括 .h 文件就足够了。 .h 表示标题,即它应该具有的只是函数/对象定义。实际的实现在同名的 .cpp 文件中。链接器将为您解决问题。

头文件包含声明(也称为原型(prototype))。包含 header 让程序知道“我声明了看起来像这样的东西存在”。

headers 的用户为我们省去了在代码文件中到处声明方法的工作——我们只需声明一次,然后导入文件。

.c/.cpp/.cc 文件包含定义 - 它告诉程序该函数的作用。

您不必“包含”.c 文件,因为这是编译器所做的 - 它将您所有的 .c 文件编译成机器代码。

关于C++ 头文件约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1814772/

相关文章:

c++ - 在所有情况下将 keyPressEvent 传播到顶层 QWidget

c++ - 如何在 CEdit 控件中保留插入符位置?

fluent-nhibernate - 我可以制定包含父键名称的 Fluent NHibernate 外键约定吗?

language-agnostic - 如何将实体名称中的首字母缩略词大写?

c++ - 包括数据类型之间的斗争

c++ - boost::asio::async_read_until 问题

c++ - switch 语句未检测到某些字符

hibernate - 从 hibernate 生成时更改 POJO 名称

c - Visual Studio 似乎将 header 编译为 .c 文件

c++ - 如何防止类的重定义?