gpt4 book ai didi

C++ : static method VS global function VS namespace VS

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:03 25 4
gpt4 key购买 nike

Possible Duplicate:
Namespace + functions versus static methods on a class

在哪里写最明智的方式,例如,一个看起来像的函数

点交点(const Line &L1, const Line &L2);

(假设我已经编写了类 PointLine)?

也许我可以使问题更精确一些:我正在考虑以下选项:

  1. 写一个全局函数(声明在line.h,写在line.cpp)
  2. 编写类Line的静态方法
  3. 使用命名空间。
  4. 改为编写函数 Point Line::intersection(const Line & otherLine);

我不喜欢最后一个选项,因为我不希望我的函数是“不对称的”(我的代码中还有其他几个这样的函数示例)。目前它们是全局函数(如选项 1 中所示),但我明白这不是“良好做法”。至于静态方法和命名空间,我还不熟悉这些,所以我不确定。

您认为什么是“最佳”设计?

感谢您的见解!

编辑:让您了解我的项目规模:50 到 100 个类(class)。

最佳答案

这真的取决于你想做什么。如果你只是在写一个非常小的程序,我真的不觉得把它写成一个全局函数有什么问题。但是,如果您的程序至少是中等大小,我会建议使用静态方法,因为您会将其功能与其处理的类组合在一起。

当然,您也可以使用命名空间来做到这一点。但是,我想您无论如何都会有一个 Line 类,因为它似乎很适合面向对象的编程风格。考虑到这一点,我真的看不出有什么理由让它成为一个命名空间而不是类 Line 的静态方法。如果我正在寻找相交方法,那肯定是我首先要看的地方!

我也没有发现最后一个选项有什么问题,但我更喜欢#2。

关于C++ : static method VS global function VS namespace VS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535886/

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