C++ 我的类的静态实例函数没有像我预期的那样工作

C++ 我的类的静态实例函数没有像我预期的那样工作,c++,class,instance,C++,Class,Instance,我写了一个这样的课程: class memUsage { public: memUsage(); void addByte(int amount); int used_byte(){return total_byte;} static memUsage* Instance(){return new memUsage();} private: int total_byte; }; memUsage::memusage() {

我写了一个这样的课程:

class memUsage {
    public:
     memUsage();
     void addByte(int amount);
     int   used_byte(){return total_byte;}
     static memUsage* Instance(){return new memUsage();}   

private:
   int total_byte;
};

memUsage::memusage()
{
   total_byte = 0;
}

memUsage::addByte(int amount)
{
 total_byte +=amount;
}
那么我就用以下的话来称呼它:

memUsage::Instance()->addByte(512);
memUsage::Instance()->addByte(512);
此函数始终返回0:

int test  = memUsage::Instance()->used_byte();

我从我不记得的地方复制了实例设计,所以我不知道这是否是正确的方法,或者我需要更改什么?

每次调用
instance
函数都会创建一个新实例,所以

memUsage::Instance()->addByte(512);
memUsage::Instance()->addByte(512);
在两个不同的对象实例上调用
addByte

由于
Instance
也会在每次调用时创建一个新对象,但您从未释放该对象,因此也存在内存泄漏


单例“get instance”函数通常如下所示

static memUsage* Instance()
{
    static memUsage instance;
    return &instance;
}

Instance
函数每次调用时都会创建一个新实例,因此

memUsage::Instance()->addByte(512);
memUsage::Instance()->addByte(512);
在两个不同的对象实例上调用
addByte

由于
Instance
也会在每次调用时创建一个新对象,但您从未释放该对象,因此也存在内存泄漏


单例“get instance”函数通常如下所示

static memUsage* Instance()
{
    static memUsage instance;
    return &instance;
}

Instance
函数每次调用时都会创建一个新实例,因此

memUsage::Instance()->addByte(512);
memUsage::Instance()->addByte(512);
在两个不同的对象实例上调用
addByte

由于
Instance
也会在每次调用时创建一个新对象,但您从未释放该对象,因此也存在内存泄漏


单例“get instance”函数通常如下所示

static memUsage* Instance()
{
    static memUsage instance;
    return &instance;
}

Instance
函数每次调用时都会创建一个新实例,因此

memUsage::Instance()->addByte(512);
memUsage::Instance()->addByte(512);
在两个不同的对象实例上调用
addByte

由于
Instance
也会在每次调用时创建一个新对象,但您从未释放该对象,因此也存在内存泄漏


单例“get instance”函数通常如下所示

static memUsage* Instance()
{
    static memUsage instance;
    return &instance;
}
... 在另一个实例上调用
used\u byte()
查询。。。。在另一个实例上调用
used\u byte()
查询。。。。在另一个实例上调用
used\u byte()
查询。。。。另一个实例调用了
used\u byte()
查询,称为“单例”。这个术语应该可以帮助您找到合理正确的实现,它被称为“单例”。这个术语应该可以帮助您找到合理正确的实现,它被称为“单例”。这个术语应该可以帮助您找到合理正确的实现,它被称为“单例”。这个术语应该可以帮助您找到合理正确的实现。