¡Nuevo!  por fin disponible la versión 5 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.