C++ class 所有成员和方法都是静态的

C++ class with all members and methods static

我得到了一个包含多个 classes 的程序,并且有一个 class 所有成员和方法都是静态的,内容如下:两个成员和两个在开始时初始化它们的方法。此外,我的静态 class 中的所有成员都是 public。我的问题是,这是一种不好的做法还是有更好的方法?我仅在另一个 class 中使用此 class 的成员。

始终避免创建无用的符号

如果不需要 class,请在命名空间中创建一组函数。如果您的函数集需要操作某些数据,静态 class/singleton 是最佳选择。

我在设计应用程序时的规则是避免使用可从任何地方调用的东西。

您对自己的限制越多(或者在图书馆的情况下是用户),您的代码越安全(错误更少由于使用不当)。

如果你真的需要做一个静态的 class,我建议你使用这样的构造函数:

class Foo
{
    public:
        Foo() = delete;
};

它避免了可实例化 class 和完全静态 class 之间的混淆。

如果你喜欢繁荣,你可以这样设置:

#define STATIC_CLASS(class_name) public: class_name() = delete

class Foo
{
    STATIC_CLASS(Foo);
};