具有静态方法的类或具有普通方法的类

时间:2016-11-16 09:23:54

标签: c++ class static

我有一个实用程序类,它不会保存任何数据成员,只是通过其方法提供一些服务。在这种情况下,哪种方法更好,使用所有静态方法创建一个类,或者使用普通方法创建一个类,并通过创建类的对象来调用它们?这两种方法的优点和缺点是什么?

2 个答案:

答案 0 :(得分:1)

如果您没有数据成员,则没有理由使用具有成员方法的类。你必须创建一个类的实例来调用你的方法(一个小但可避免的开销)

调用类的静态方法不会产生任何开销。对于命名空间中的函数也是如此。

答案 1 :(得分:1)

我认为最好的选择是使用namespace和免费功能。原因:

  • 使用普通方法的class会让人感到困惑,因为它需要实例化但没有状态。

  • 使用仅使用静态方法的class会更好,但要求用户始终指定类的名称。

  • 使用namespace和免费函数可防止混淆/不必要的实例化,并允许用户对namespace进行别名或使用using namespace以避免重复使用同一范围内的多个函数。 namespace也可以跨多个文件。