在C ++中使用静态类

时间:2012-11-09 05:45:36

标签: c++

我的C ++项目中有一些数学方法(例如:点查找器,规范化等),可能可以在项目的不同类或不同位置使用。

我来自C#背景,如果在这种情况下,我应该制作类似于包含所有这些方法并在程序中使用它们的静态类的东西?或者我应该定义一个类并通过类对象在我想要的任何地方使用它?

在这种情况下,什么是理想的?

4 个答案:

答案 0 :(得分:4)

如果方法之间没有关系,则应将它们定义为类中的公共静态函数或专用命名空间中的常规函数​​。两种方式都只是为您的方法定义范围。

答案 1 :(得分:3)

在C ++中,你可以定义一个类,在这个类中,你将这些方法定义为public static,你可以在任何地方使用它。 例如:

class Mathematical
{
 public:
   static void normalize();
}

您可以将此功能用作:

Mathematical::normalize().

它与C#

中的静态类函数相同

答案 2 :(得分:2)

使用命名空间。在一个类中粘贴一堆静态函数,其唯一目的是将它们组合在一起,这是一个Java hack来弥补其缺少命名空间。

答案 3 :(得分:1)

嗯,我认为这取决于你的工作,所以如果不另外说明,我就无法给你一个具体的答案。

正如你所说,你可以在不止一个地方写它,它会起作用,所以编译器会很高兴。 现在我们需要取悦你 - 程序员。

所以请问自己“应该在哪里?”。我想到的答案是有意义的答案。

关于数学运算:我认为他们应该有自己的静态方法类(而不是静态类;请看下面的注释),除非它们仅用于一种类型。如果它们仅在一种类型中使用,那么它(通常)更好地将它放在该类型中,即使是非静态方法。

注意:C ++不支持C#中的静态类(当然,除非你使用managed C++