C++析构函数问题2

预测C++程序的输出

null

#include <iostream>
using namespace std;
int i;
class A
{
public :
~A()
{
i=10;
}
};
int foo()
{
i=3;
A ob;
return i;
}
int main()
{
cout << foo() << endl;
return 0;
}


(A) 0 (B) 3. (C) 10 (D) 以上都不是 答复: (B) 说明: 从函数返回时,析构函数是最后要执行的方法。将i的值复制到函数的返回值后,调用对象“ob”的析构函数。因此,在析构函数将i的值更改为10之前,i的当前值会被复制,因此输出为i=3。看到了吗 更多细节。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享