C++ | Constructores | Pregunta 5

Salida del siguiente programa?

#include<iostream>
using namespace std;
  
class Point {
public:
    Point() { cout << "Normal Constructor called\n"; }
    Point(const Point &t) { cout << "Copy constructor called\n"; }
};
  
int main()
{
   Point *t1, *t2;
   t1 = new Point();
   t2 = new Point(*t1);
   Point t3 = *t1;
   Point t4;
   t4 = t3;
   return 0;
}

(A) Constructor normal llamado
Constructor normal llamado Constructor
normal llamado Constructor
copia llamado Constructor
copia llamado Constructor
normal llamado Constructor
copia llamado
(B) Constructor normal llamado
Constructor copia llamado Constructor
copia llamado Constructor
normal llamado Constructor
copia llamado
(C) Constructor normal llamado
Constructor copia llamado Constructor de
copia llamado Constructor
normal llamado

Respuesta: (C)
Explicación: Consulte los siguientes comentarios para obtener una explicación:

Point *t1, *t2;   // No constructor call
t1 = new Point(10, 15);  // Normal constructor call
t2 = new Point(*t1);   // Copy constructor call 
Point t3 = *t1;  // Copy Constructor call
Point t4;   // Normal Constructor call
t4 = t3;   // Assignment operator call 

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 *