如何使用布尔值来防止在一个类中加载两次

How to use a bool to prevent loading twice in a class

本文关键字:一个 加载 两次 布尔值 何使用      更新时间:2023-10-16

>我有一个类,我想使用preLoad布尔值来防止它在我的循环中加载两次。

我是这样做的:

Sprite::Sprite(std::string& imagefile)
{
 if(!preload){
    if(!texture.loadFromFile(imagefile)){
        exit(2);
    }
    sprite = sf::Sprite(texture);
    width = sprite.getLocalBounds().width;
    height = sprite.getLocalBounds().height;
    preload = true;
 }
}

问题是preload似乎开始true而不是false 。该变量在类中设置如下:

private:
bool preload;

但是,我需要先将其设置为 false,但它不允许我在标题中为其分配false。我该怎么做才能将其设置为最初false

使用静态布尔值并将其设置在 cpp 文件中。

private:
    static bool preload;

在.cpp文件中

//file declarations
bool Sprite::preload = false;
//class functions below...

static 关键字将使所有对象共享相同的变量,允许您在程序的整个生命周期中只调用一次函数。

相关文章: