Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 仅使用类中的静态成员_C++ - Fatal编程技术网

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文件中声明的另一个命名空间的静态成员(使它们比类的私有成员更难访问)。