我有一个具有多个类的程序,并且有一个类具有所有静态的成员和方法,并具有以下内容:两个成员和两个用于在开始时对其进行初始化的方法。同样,我的静态课程中的所有成员都是公开的。我的问题是,这是不好的做法还是有更好的方法呢?我仅在另一个类中使用该类的成员。
答案 0 :(得分:0)
始终避免创建无用的符号。
如果不需要类,请在名称空间中创建一组函数。如果您需要一组函数来处理一些数据,则可以使用静态类/单例。
设计应用程序时,我的规则是避免拥有可在任何地方调用的内容。
您对自己的限制越多 (或者对于库用户),您的代码越安全(应减少错误的发生)使用不当)。
如果确实需要创建静态类,我建议您使用像这样的构造函数:
class Foo
{
public:
Foo() = delete;
};
它避免了难以理解的类和完全静态的类之间的混淆。
如果您喜欢蓬勃发展,可以设置以下内容:
#define STATIC_CLASS(class_name) public: class_name() = delete
class Foo
{
STATIC_CLASS(Foo);
};