C++ 仅使用类中的静态成员
只有静态数据成员的类明智吗?我试图实现的类如下所示:C++ 仅使用类中的静态成员,c++,C++,只有静态数据成员的类明智吗?我试图实现的类如下所示: class myClass{ private: //list of static data members public: //set of methods } 这些方法利用静态数据,并在运行时对其进行修改。我从来没有写过一个只使用静态数据的类,但是对于其中的7个成员,我觉得有点奇怪。所以我想知道这是否从C++程序标准中得到了很好的理解。p> 我认为这种方法没有错。它看起来有点像java。静态成员基本上充当封装在类中的全局变量。将它们放在类
class myClass{
private:
//list of static data members
public:
//set of methods
}
这些方法利用静态数据,并在运行时对其进行修改。我从来没有写过一个只使用静态数据的类,但是对于其中的7个成员,我觉得有点奇怪。所以我想知道这是否从C++程序标准中得到了很好的理解。p> 我认为这种方法没有错。它看起来有点像java。静态成员基本上充当封装在类中的全局变量。将它们放在类中有一个优势,即可以用一种自然的方式定义setter和getter(在您的情况下,这似乎是一种要求)
缺点是,对于用户来说,创建该类的对象是否真的有意义并不明显。但是,您可以简单地通过将构造函数设置为私有来防止这种情况。考虑使用
名称空间而不是使用查看良好的尖叫意见。听起来像个XY问题。如果您的所有变量都是静态的,您可能没有很好地设计您的类。另一种可能是一个普通的类,您在寻找一个单例时会创建一个静态实例?您基本上是在实现一个单例。一些人认为这是一种反模式,而另一些人则认为这在某些场景中是一种良好的实践。另一种方法是使用命名空间并将变量声明为.cpp文件中声明的另一个命名空间的静态成员(使它们比类的私有成员更难访问)。