我遇到了一个似乎无法解决的最简单的问题。
我在UI内有一个名为UI的类。h我存储了一个名为index的变量,并有一个方法setup()来设置index的值:
class UI {
public:
float index;
public:
void setup(float p_selectedMicrobeIndex);
};
安装过程如下:
void UI::setup(float p_selectedMicrobeIndex)
{
microbeIndex = p_selectedMicrobeIndex;
}
在游戏类.h文件中,我声明了一个名为UI的类的实例:
#include "UI.h"
class Game {
private:
UI* ui;
};
在Game.cpp内部,我正在运行UI.setup()来设置索引值。
ui->setup(0.0f);
我正在努力理解为什么这会导致细分错误。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:4)
您正在创建一个指针,但是没有创建要指向它的实例。您应该创建一个实例
UI ui;
ui.setup(0.0f);
或使用指针执行此操作(尽管我不知道为什么)
UI* ui = new UI;
ui->setup(0.0f);
使得指针实际上指向明智的东西。
UI* ui;
仅为指向UI
的对象的指针保留内存,而没有为UI
的对象保留内存。因此,设置失败,因为您尝试写入未分配的内存。