有些人可以解释为什么发生这种情况? 我写道:
(1) 窗口管理类别,作为单一州实施,有<条码>(Instance()方法,其定义如下:
static WindowManager * instance_;
//...
WindowManager * WindowManager::instance_ = 0;
WindowManager & WindowManager::Instance()
{
if (!instance_)
instance_ = new WindowManager();
return *instance_;
}
2) aWindowManager:createWindow
回归提及新建立的窗口的方法,如:
Window & WindowManager::createWindow()
{
windows_.push_back(Window());
return windows_.at(windows_.size() - 1);
}
3)a 在窗口内打印信息的方法
在我的主要方案中,我撰写了以下文件:
ui::Window & win1 = ui::WindowManager::Instance().createWindow();
ui::Window & win2 = ui::WindowManager::Instance().createWindow();
win1.print("First window");
win2.print("Second window");
This does not work! Only the second call to print
is executed (for win2
).
However, if I change the order, like so:
ui::Window & win1 = ui::WindowManager::Instance().createWindow();
win1.print("First window");
ui::Window & win2 = ui::WindowManager::Instance().createWindow();
win2.print("Second window");
那么,所有事情都是按预期运作的。 如果任何人能够说明这种情况,将非常感谢任何帮助。