【发布时间】:2011-04-03 19:49:22
【问题描述】:
我遇到的问题是我从一个类中创建了两个不同的菜单。当我完成第一个时,一切都很好。但是,当我创建第二个并设置它的区域时,它也会修改前一个。当我调用仅翻转一个布尔变量的 Display() 时,它会同时翻转它,而不仅仅是我要调用的那个。
cMenu* gameMenu;
cMenu* spellMenu;
gameMenu = new cMenu();
for(int i=0; i< 25; i++)
gameMenu->AddButton("test", i);
AddGameObject(gameMenu);
spellMenu = new cMenu();
spellMenu->SetRegion(580, 50, 52, 250, FORMAT_5X1); // This modifies gameMenu as well
spellMenu->Display(); // So does this
g.AddGameObject(spellMenu);
【问题讨论】:
-
您将 g.AddGameObject 用于 spellMenu 但只使用 gameMenu 的方法而不是 g 对象上的方法。
标签: pointers dynamic class new-operator instantiation