我有这个简单的循环,通过一组基类指针运行:
Object * objects[2];
objects[0] = new GreenObject;
objects[1] = new RedObject;
objects[2] = new BlueObject;
for (int i = 0; i < 3; ++i) {
cout << i << " ";
objects[i]->info();
}
在调试模式下,程序在循环的第三次迭代中崩溃,在输出 之后立即调用i
该info()
方法。在发布模式下不会发生这样的事情,它正在按应有的方式运行。这不是对象的问题,因为即使我使用其他派生类它也会锁定。
Windows 7 64bit 下的 GCC 4.4.0
有任何想法吗?