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);
};
我得到了一个包含多个 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);
};