自由功能有什么意义?

时间:2017-02-25 20:09:50

标签: c++ oop

我听说过有关类的函数,但是在类外面。我的意思是,这些对于类实现很有用,因为它使用它,但它不在类体中,它在外面,在任何地方都丢失了。 所以,我想知道,编写自由函数而不仅仅是编写成员函数有什么意义?

感谢您的回答。

2 个答案:

答案 0 :(得分:5)

自由功能提供了更好的解耦和接口清晰度。当大多数算法逻辑由自由函数提供时,您的数据结构需要具有明确的目的和适当的接口。结果是代码最小化耦合,这更容易推理,测试和依赖。

通常,数据结构应尽可能小,并且必须尽可能大,以实现单一,特定的目的;数据结构应该通过组合进行组合,逻辑应该由尽可能多地访问数据公共接口的自由函数提供。

成员函数可能很方便,当然有必要使用一些成员函数来提供前面提到的界面,但这是一个很滑的斜率,如果做错了,你最终得到像{ {1}}。

答案 1 :(得分:2)

如果一个函数不需要保持状态,那么就没有理由让它成为一个类的一部分。 考虑

int add(int a, int b) { return a + b; }

该函数可以自行完成工作,不需要类对象。