c++ - 单步执行代码时重复上一行

标签 c++ instantiation

在单步执行我的代码时,我注意到在实例化一个新类时,代码后退一行,因此执行了两次。 这是两行。

ST_GalacticObject GO = GalacticObjects->Item [FIndex];
delete F; F = new ST_Facility (GO);

注意: GalacticObjects 和称为 FacilityClasses 的相关对象(同一文件)都定义为 extern。

最佳答案

在创建和销毁对象时生成的代码中有许多隐藏位。

编译器在创建这段代码时为其分配了一些行号。执行代码时,调试器会突出显示该行。

一个常见的情况是调试器返回到运行析构函数时声明对象的行。

当您的代码不一定按顺序执行时,优化代码会变得更糟,您甚至可能会看到代码行被多次执行,因为每行的不同部分都被评估了。

您只需要相信编译器已经做了正确的事情并生成了正确的代码,而忽略调试器告诉您正在进行的事情。

关于c++ - 单步执行代码时重复上一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59192207/

相关文章:

c++ - 如何在 C++ 中读取未知形状的二进制文件?

c++ - TreeView 添加 Shell 图标

.net - 一个类的字符数组

java - 我可以在不实例化此类的情况下使用类的方法吗?

javascript - 对象不会被创建?

java - 缺少依赖项时的对象实例化(Java)

c++ - 如何用代码断开互联网连接?

c++ - STL 容器要求

c++ - 不使用 << 的带有值的 QVector 的单行实例化

android - 使用 EditTextPreference 的子类时出现 InstantiationException