#include<iostream> using namespace std; class X { public: int x; }; int main() { X a = {10}; X b = a; cout << a.x << " " << b.x; return 0; }
(A) Error del compilador
(B) 10 seguido de Valor basura
(C) 10 10
(D) 10 0
Respuesta: (C)
Explicación: Lo siguiente puede parecer un error, pero funciona bien.
Xa = {10};
Al igual que las estructuras, los objetos de clase se pueden inicializar.
La línea “X b = a;” llama al constructor de copias y es lo mismo que «X b(a);». Tenga en cuenta que, si no escribimos nuestro propio constructor de copia, el compilador crea un constructor de copia predeterminado que asigna miembros de datos de un objeto a otro objeto.
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