Jon*_* Ma 3 c++ loops lifetime
假设我们有一个方法.方法内部是一个包含n次迭代的循环,其中myObj声明并初始化了一个对象.
myObj
例:
void foo() { for (int i = 0; i < 100; i++) { A myObj(); } }
son*_*yao 5
它被建造和摧毁了多少次?一次,或n次?
n次.
什么时候构造发生 - 当执行该行时,或者当程序调用该方法时?
当执行该行时.
破坏何时发生?在每次迭代结束时,在for块的末尾,或方法的结尾?
当离开对象的范围时; 对于您的示例代码,在每次迭代结束时.
BTW:A myObj();不是对象的定义,而是函数的声明.你可能意味着A myObj;或A myObj{};(从C++ 11开始).搜索最令人烦恼的解析更多细节.
A myObj();
A myObj;
A myObj{};
归档时间:
8 年,8 月 前
查看次数:
92 次
最近记录: