【发布时间】:2020-09-02 12:02:41
【问题描述】:
我已将所有类放入单独的头文件中。所以我有一个名为snake 的文件用于Snake 类和一个fruit 文件用于Fruit 类等。我熟悉使用头文件声明类及其方法的概念,然后在具有相同名称的单独 .cpp 文件中定义方法。所有这些对我来说都很有意义,而且我过去也这样做过。
我的问题是:在没有单独的 .cpp 文件的情况下在头文件中实现最简单的方法是否被认为是一种不好的做法?或者也许我应该把整个班级放在.cpp 文件中?
我问这个的原因是我的一些类只包含 2 个或 3 个 set 和 get 成员函数,我没有看到指向为少于 10 行代码创建一个单独的文件。事实上,我相信这会使我的代码变得不必要地复杂。我在网上看了,有人说可以,有人说不行。
【问题讨论】:
-
模板方法不能在单独的cpp文件中定义,所以有些情况下在C++头中定义方法是好的。
-
这本质上是风格问题。我个人认为简单的 getter/setter 在头文件中是可以的。但是,在您的情况下,您确定带有公共成员的简单结构不会更好吗?
-
这是基于意见的。但是如果我关心性能,我倾向于在标题中定义函数,因为那时这些函数可能会被内联。
-
如果你的类只有几个getter和setter,没有其他成员函数,你不妨去掉它们,使用公共成员变量。
-
“我的一些类只包含 2 个或 3 个 set 和 get 成员函数”——那么它们可能不是很好的类,可以从重构中受益。 OOP 的全部意义在于将 行为 与您的数据捆绑在一起。如果数据没有行为,它只是一袋值。这可能没问题,但是为什么还要麻烦 setter 和 getter 呢?