我需要结合几种方法而不添加一些数据成员。有任何想法吗?

时间:2008-11-28 16:35:36

标签: c++ oop

让我们说我需要写几个处理一些数据的函数。这些函数执行单个任务 - 一些数学计算。我想没有必要将它们与一些数据成员结合起来。

我要用:

  1. 没有数据成员的类,并将这些函数声明为静态方法,因此我可以在不创建类对象的情况下使用它们,
  2. 或匿名命名空间,
  3. 或者我在架构和设计方面需要更复杂的东西?
  4. 实际上,我所写的语言是C ++,但我认为这个问题并不取决于开发语言是什么。

2 个答案:

答案 0 :(得分:2)

在C ++中,我使用实用程序命名空间,而不是只使用静态方法的类。

答案 1 :(得分:2)

我不明白为什么要将它们放在匿名命名空间中。这样做是为了确保这些功能仅用于一个编译单元,这与您的问题无关。

现在,要在类中的静态函数或实用程序命名空间中的自由函数之间进行选择,它可以满足您的需求。这些解决方案之间存在一些差异:

  • 在课程中,您可以将某些功能设置为私有,受保护或公开。例如,您可能拥有私人函数来执行公共函数所需的常见操作。
  • 可以扩展名称空间,并将其定义分散在多个文件中。
  • 可以对类进行子类化(因此也可以扩展它们的功能)。您可以拥有一个带有受保护静态函数的模型,并将客户端类子类化为此类,以便更好地进行封装。