首页 > 解决方案 > 为什么静态变量没有设置为 1000

问题描述

我的类中有一个静态变量,我在 cpp 文件中将其实例化为 1000。

class Container
{
private: 
    static long GLOBALID;
    long MyID;
public:

    Container();
    long GetId();   
};

cpp 文件的代码。

long Container::GLOBALID = 1000;

Container::Container()
{
    MyID = GLOBALID++;

}

long Container::GetId()
{
    return MyID;
}

当我打印容器对象的 ID 值时,它们会不断增加。

我的问题是,当我创建一个新对象时,我将静态变量实例化为 0f 1000 那么为什么它会随着创建的每个对象而不断增加呢?

标签: c++c++11

解决方案


每创建一个新的 Container 对象,您就将Container::GLOBALID数字加 1。这是因为您MyID = GLOBALID++在 Container 构造函数中调用,它返回 GLOBALID 然后递增它,请参阅前缀和后缀递增


推荐阅读