C++ 具有静态方法的类或具有常规方法的类

C++ 具有静态方法的类或具有常规方法的类,c++,class,static,C++,Class,Static,我有一个实用程序类,它不包含任何数据成员,只通过其方法提供一些服务。在这种情况下,哪种方法更好,使用所有静态方法创建一个类,还是使用普通方法创建一个类,并通过创建该类的对象来调用它们?这两种方法的优缺点是什么?如果没有数据成员,就没有理由使用带有成员方法的类。您必须创建一个类实例来调用您的方法(虽然开销很小,但可以避免) 调用类的静态方法不会产生开销。命名空间中的函数也是如此。如果没有数据成员,则没有理由将类与成员方法一起使用。您必须创建一个类实例来调用您的方法(虽然开销很小,但可以避免) 调用

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

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


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

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


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

我认为更好的选择是使用
命名空间和自由函数。原因:

  • 与常规方法一起使用会令人困惑,因为它需要实例化,但没有状态

  • 只使用静态方法使用
    更好,但需要用户始终指定类的名称

  • 使用
    名称空间
    和自由函数可以防止混淆/不必要的实例化,还允许用户在同一范围内使用多个函数时,为
    名称空间
    别名或使用
    使用名称空间
    ,以避免重复。
    命名空间
    也可以跨多个文件


我认为最好的选择是使用
名称空间和自由函数。原因:

  • 与常规方法一起使用会令人困惑,因为它需要实例化,但没有状态

  • 只使用静态方法使用
    更好,但需要用户始终指定类的名称

  • 使用
    名称空间
    和自由函数可以防止混淆/不必要的实例化,还允许用户在同一范围内使用多个函数时,为
    名称空间
    别名或使用
    使用名称空间
    ,以避免重复。
    命名空间
    也可以跨多个文件


第三种可能的选择:使用
命名空间和自由函数。感谢您的评论,有没有理由选择这三种方法中的任何一种?第三种可能的选择:使用
命名空间和自由函数。感谢您的评论,有没有理由选择这三种方法中的任何一种?