如何使用布尔值来防止在一个类中加载两次
How to use a bool to prevent loading twice in a class
>我有一个类,我想使用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 关键字将使所有对象共享相同的变量,允许您在程序的整个生命周期中只调用一次函数。
相关文章:
- 如何在C++中使用pybind11加载一个pickle python列表
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 如何制作一个只包含字符的简单加载屏幕
- 试图用c++制作一个动画加载圈
- SFML 将图像从 txt 文件加载到矢量中仅加载最后一个图像
- 当将多个TypedArrayContents数组加载到V8数组中时(数组数组)时,最后一个元素将覆盖所有元素
- Java加载DLL,该DLL从JNI中的另一个DLL导出方法
- 为什么主可执行文件和 dlopen 加载的共享库共享命名空间静态变量的一个副本?
- 如何使用 for 循环将元素加载到我的每个数组中,然后将每个数组的总和输出到一个 sum 数组中
- 如何在单独的线程上加载纹理到主内存并使用它在另一个线程上渲染
- 从一个文本文件加载多个 char 和 int 类型的数组
- 如何使用布尔值来防止在一个类中加载两次
- 为什么LD_PRELOAD不适用于其中一个加载的共享库?
- COCOS2D-X:从另一个线程中加载精灵,任何模式
- 这个opencv程序用于同时从一个文件夹中加载不同的图像,但它只读取一个图像
- 延迟加载可以被视为RAII的一个例子吗
- Qt:在另一个线程中预加载 qpixmap
- 是否有从另一个DLL中加载DLL的最佳实践
- 将一个大文件加载到内存中并在程序的所有运行时间内保持它是错误的
- 我的程序得到一个abort()错误,但我不能调试它,因为它是程序的一个加载部分