Ver Mensaje Individual
  #13 (permalink)  
Antiguo 01/06/2014, 05:30
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 6 meses
Puntos: 61
Respuesta: Mi cadena se pierde

No lo es. Los objetos temporales existen y el compilador tiene la obligacion de crearlos.

Lo raro sería que un objeto se construyera o destruyera 2 veces.
Es posible jugar con el destructor, pero los codigos aqui vistos no son ejemplo de esto.

Tal vez es mas evidente que existen 2 objetos imprimiendo el valor del puntero this.

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class MiClase {
  5.    public: MiClase( const char* s ) {
  6.       cout << "Construyo " << s << " -- " << this << endl;
  7.    }
  8.  
  9.    public: ~MiClase() {
  10.       cout << "Destruyo " << this << endl;
  11.    }
  12. };
  13.  
  14. int main() {
  15.    cout << "Antes de construccion" << endl;
  16.    MiClase m("[CONSTRUCTOR]");
  17.  
  18.    cout << "Despues de construccion, antes de copia" << endl;
  19.    m = "[COPIA]";
  20.  
  21.    cout << "Despues de copia" << endl;
  22.  
  23.    return 0;
  24. }

Ver este ejemplo ejecutandose aqui: http://goo.gl/BdjA04
__________________
Visita mi perfil en LinkedIn

Última edición por CalgaryCorpus; 02/06/2014 a las 17:14