具有所有成员和方法的C ++类静态

时间:2019-07-09 13:26:28

标签: c++ static static-classes

我有一个具有多个类的程序,并且有一个类具有所有静态的成员和方法,并具有以下内容:两个成员和两个用于在开始时对其进行初始化的方法。同样,我的静态课程中的所有成员都是公开的。我的问题是,这是不好的做法还是有更好的方法呢?我仅在另一个类中使用该类的成员。

1 个答案:

答案 0 :(得分:0)

始终避免创建无用的符号

如果不需要类,请在名称空间中创建一组函数。如果您需要一组函数来处理一些数据,则可以使用静态类/单例。

设计应用程序时,我的规则是避免拥有可在任何地方调用的内容。

您对自己的限制越多 (或者对于库用户),您的代码越安全(应减少错误的发生)使用不当)。

如果确实需要创建静态类,我建议您使用像这样的构造函数:

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

它避免了难以理解的类和完全静态的类之间的混淆。

如果您喜欢蓬勃发展,可以设置以下内容:

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

class Foo
{
    STATIC_CLASS(Foo);
};