#include <iostream>
using namespace std;
int i;
class A
{
public:
~A()
{
i=10;
}
};
int foo()
{
i=3;
A ob;
return i;
}
int main()
{
cout << "i = " << foo() << endl;
return 0;
}
输出是3时,为什么不10.为什么这个C++程序的输出是3
您只在析构函数中将i设置为10。因此,当您打印i的值时,对象ob仍然有效。 – ckv