📜  C ++ |析构函数|问题2

📅  最后修改于: 2021-06-28 20:40:52             🧑  作者: Mango

预测以下C++ progran的输出

#include 
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。有关更多详细信息,请参见此内容。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。