我有一个静态函数:
void TextManager::printDialogue(vector<Button*>* options, int optionsCount, vector<string> outputDisplayText)
{
active = true;
buttons = *options;
buttonsCount = optionsCount;
outputText = outputDisplayText;
}
“按钮”变量是静态的:
static vector<Button*> buttons;
我在执行函数中调用 printDialogue:
void WorldDoor::execute()
{
vector<Button*> buttons;
buttons.push_back(new CancelButton());
buttons.push_back(new ChangeRoomButton(room));
TextManager::printDialogue(&buttons, 2, messages); //<----
std::vector<Button*>::iterator i = buttons.begin();
for ( i = buttons.begin() ; i < buttons.end(); i++ )
{
delete * i;
}
}
无论出于何种原因,当我调试并在 printDialogue 函数内设置断点时,“按钮”中的值都非常好。但是,在我离开 printDialogue 后,我的按钮中包含的字符串从可读变为给我一条错误消息:
我尝试将指针传递给数组而不是使用
vector<Button*>
但它只是读取第一个变量。现在它什么也没读。有人可以帮忙吗?