class Stu {
public:
Stu() {
cout << "Stu构造函数的调用" << endl;
}
~Stu() {
cout << "析构函数的调用" << endl;
}
};
int main() {
for (int i = 0; i < 3; i++) {
Stu s;
}
return 0;
}
输出结果:
可以看到每一次循环 Stu类都执行了一次构造函数和一次析构函数。也就是说,每单次循环结束后程序都会跳出循环体的作用域,循环体内的局部变量都被释放;下一次循环重新进入循环体,里边的每个局部变量和对象都重新构造。
int main() {
int i = 3;
while (i) {
int count = 0;
cout << count++ << endl;
i--;
}
return 0;
}
输出结果:
局部变量count打印完后执行count++,变为1,循环结束后程序也是会跳出循环体,销毁局部变量count,下次进入循环的时候局部变量count重新创建,值又变为0。