下面的代码使用了一个析构函数来修改i
. 当析构函数运行时,2
应该被存储到返回i
时thing()
我们观察到-1
的。
#include <stdio.h>
class Destruct {
int &i;
public:
Destruct(int &_i) : i(_i) {}
~Destruct() {
i = 2;
}
};
int thing() {
int i = -1;
Destruct d(i);
return i;
}
int main() {
printf("i: %d\n", thing());
}