C++ | Constructores | Pregunta 16

¿Predecir la salida del siguiente programa?

#include <iostream>
using namespace std;
class Test
{
private:
    int x;
public:
    Test(int i)
    {
        x = i;
        cout << "Called" << endl;
    }
};
  
int main()
{
    Test t(20);
    t = 30; // conversion constructor is called here.
    return 0;
}

(A) Error del compilador
(B)

Called
Called

(C)

Called

Respuesta: (B)
Explicación: si una clase tiene un constructor al que se puede llamar con un solo argumento, entonces este constructor se convierte en un constructor de conversión porque dicho constructor permite la conversión automática a la clase que se está construyendo.

Se puede llamar a un constructor de conversión en cualquier lugar cuando el tipo de argumento único se asigna al objeto. La salida del programa dado es

Called
Called

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 *