c++ - 真正的“对象函数”只在头文件中?
问题描述
首先让我说我来自Java。
所以我昨天挖了 C++ OO 编程,我对头文件中的函数有点困惑。
在我看来,对象是在那里定义的,以及只属于对象的所有函数,而不是静态类。但是由于我习惯于初始化一个包含许多字段的对象,然后调用使用这些字段来做事情的函数并尽可能避免使用静态函数,结果是一个完全垃圾邮件的头文件,使类的 .cpp 表示几乎是多余的。我在这里错过了什么,还是 C++ OOP 真的只是关于数据对象?
据我所知,确实应该使用 cpp 文件,但在它的功能中,所有需要的东西都应该通过参数传递,甚至是同一个类的对象。
解决方案
这里有两种定义类方法的替代方法,第一种是在头文件中,第二种是在头文件和 cpp 文件之间拆分。
// *** in the header file only ***
class X
{
void some_function() { /* some code */ }
};
// *** split between the header file and a cpp file ***
// header file
class X
{
void some_function(); // declaration only
};
// cpp file
#include "header_file.h"
void X::some_function() // definition
{
/* some code */
}
推荐阅读
- powershell - 无法为服务帐户的计划任务中调用的脚本调用 Web 请求
- javascript - Apollo 客户端在突变后更新缓存,但不更新页面
- .net - Visual Studio 2019 安装导致 Type '' is not defined 错误(.NET Framework 4 项目)
- python - cassandra错误“批量太大”使用python
- r - 寻找置信区间
- extjs - ExtJS 4.2 网格视图配置 enableTextSelection
- java - 将java翻译成c#
- html - div内的元素在使用绝对位置时没有得到灰色背景
- c++ - 如何在运行时在 CTest 中传递命令行参数?
- html - 如何使用 CSS 显示元素的单个实例?