C++ | Destructores | Pregunta 2

Predecir la salida del siguiente programa C++

#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) Ninguna de las anteriores

Respuesta: (B)
Explicación: Al regresar de una función, destructor es el último método que se ejecuta. Se llama al destructor para el objeto «ob» después de que el valor de i se copia al valor de retorno de la función. Entonces, antes de que el destructor pudiera cambiar el valor de i a 10, el valor actual de i se copia y, por lo tanto, la salida es i = 3. Consulte esto para obtener más detalles.
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *