Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


Ejemplo

Se muestra la utilización de los constructores de conversión, y como el compilador selecciona automáticamente el constructor adecuado para realizar el modelado de tipo asociado con determinadas operaciones de asignación.

#include <iostream>
using namespace std;

class C {
  public:
  int x;
  C() {               // C-1
    cout << "Invocado Constructor C-1\n"; x = 0;
  }
  C(int i) {          // C-2
    cout << "Invocado Constructor C-2\n"; x = i;
  }
  C(char* pc) {       // C-3
    cout << "Invocado Constructor C-3\n"; x = -1;
  }
  C& operator=(const C& cr) {
    cout << "Invocado operador de asignacion X= " << x << endl;
    x = cr.x;
    return *this;
  }
  ~C() {              // Destructor
    cout << "Invocado destructor\n";
  }
};

int main() {          // ===========
  {
    C a;              // S1
    C b = 2;          // S2
    C c = "Mexico";   // S3
    a = c;            // S4
    b = 3;            // S5, S6
  }                   // S7, S8, S9, S10
  return 0;
}

Salida:

Invocado Constructor C-1
Invocado Constructor C-2
Invocado Constructor C-3
Invocado operador de asignacion X= 0
Invocado Constructor C-2
Invocado operador de asignacion X= 2
Invocado destructor
Invocado destructor
Invocado destructor
Invocado destructor

Comentario

En las sentencias de la función main se han indicado las líneas de salida que les corresponden.