在单步执行我的代码时,我注意到在实例化一个新类时,代码后退一行,因此执行了两次。 这是两行。
ST_GalacticObject GO = GalacticObjects->Item [FIndex];
delete F; F = new ST_Facility (GO);
注意: GalacticObjects 和称为 FacilityClasses 的相关对象(同一文件)都定义为 extern。
最佳答案
在创建和销毁对象时生成的代码中有许多隐藏位。
编译器在创建这段代码时为其分配了一些行号。执行代码时,调试器会突出显示该行。
一个常见的情况是调试器返回到运行析构函数时声明对象的行。
当您的代码不一定按顺序执行时,优化代码会变得更糟,您甚至可能会看到代码行被多次执行,因为每行的不同部分都被评估了。
您只需要相信编译器已经做了正确的事情并生成了正确的代码,而忽略调试器告诉您正在进行的事情。
关于c++ - 单步执行代码时重复上一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59192207/