当一个函数需要成为一个成员函数时

时间:2014-07-09 14:21:14

标签: c++

我试图在何时使用成员函数(静态),以及何时在.cpp文件中添加一个帮助器方法时试一试。

假设在MyClass类中我想将TypeA转换为typeB。 这是一个漫长的过程,因此我将添加一个方法来处理转换。

该方法是纯函数式的,与MyClass实例的状态无关。 它获取输入并生成输出,而不使用MyClass的任何成员(私有或公共)。

只有MyClass会使用此方法。

现在我不确定如何定义此方法:

  1. MyClass中的静态函数
  2. 具有此功能的专用类中的静态函数。
  3. 不是任何类成员的帮助方法,只有cpp文件中的定义。

2 个答案:

答案 0 :(得分:3)

如果正如您所说,“只有MyClass将使用此方法”,那么它在逻辑上属于MyClass作为静态成员函数。

答案 1 :(得分:3)

  

3.Help方法不是任何类的成员,只有cpp文件中的定义。

因此,如果需要,可以更改辅助方法的定义,而不必担心在将MyClass的客户端设置为静态成员函数时重新编译它们。

修改 正如@πάνταῥεῖ所说,你可以将helper方法放在一个未命名的命名空间中,以限制它在MyClass cpp文件(以及包括它的翻译单元)中的使用。