其他分享
首页 > 其他分享> > c-对象静态成员的初始化

c-对象静态成员的初始化

作者:互联网

静态成员有时会使我感到困惑.我了解如何使用int myClass :: statVar = 10;的线初始化简单的内置类型(例如int),将其放置在.cpp文件中,但是我有以下几种类型:

class myClass
{
public:
 // Some methods...

protected:
 static RandomGenerator itsGenerator;
}

基本思想很简单:myClass需要为其成员函数之一访问随机生成器.由于每个对象都很大,因此我也只能有几个生成器实例.但是,可以说,RandomGenerator类型需要“初始化”,可以通过调用RandomGenerator :: Randomize()进行,编译器不允许您执行此操作,因为它不是const rvalue(是吗?).

那么我该如何做呢?

还是在这种情况下我不应该使用静态变量,而是以其他方式使用它?

解决方法:

您可以创建包装器类,该包装器类将在其中包含RandomGenerator实例,并在其构造函数中调用RandomGenerator :: Randomize.

标签:c,class,global-variables,static
来源: https://codeday.me/bug/20191012/1901397.html