类的静态对象?

Pot*_*ers 0 c++

我实际上并不是真的知道你是否可以声明一个类,然后在同一个类的几个对象中使用静态实例.进一步来说:

class State {
    public:
        State();
        static CustomNumberDist normal_dist;
    private:
        int id;   
};
Run Code Online (Sandbox Code Playgroud)

因此,State的每个实例都应该包含CustomNumberDist的相同实例.我编译,但我想知道它是否有效或我可能会在以后遇到问题.

Ed *_*eal 6

您提供的声明(头文件,即.h)完全有效.

但是在定义(.cpp文件)中需要

State::CustomNumberDist normal_dist;
Run Code Online (Sandbox Code Playgroud)

当你到达链接阶段时,静态对象需要内存.