¿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
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