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