#include <cstdlib> #include <iostream> #include <string> using namespace std; class Person { public: Person( const char *pN ) { pName = new string( pN ); cout << "Construyendo " << pName << endl; } Person( Person &p ) { cout << "Copiando " << pName << endl; pName = new string("Copia de " ); *pName += *p.pName; } Person( Person &&p ) { cout << "Moviendo " << *p.pName << endl; pName = p.pName; p.pName = nullptr; } ~Person() { if( pName ) { cout << "Destruyendo " << *pName << endl; delete pName; } else { cout << "Destruyendo objeto vacio" << endl; } } protected: string *pName; }; Person fn2( Person p ) { cout << "Entrando a fn2" << endl; return p; } Person fn1( char *pName ) { cout << "Entrando a fn1" << endl; return fn2( *new Person( pName ) ); } int main( int argc , char *argv[] ) { Person s( fn1("Kenny") ); system("pause"); return 0; }
Herramientas Para el Desarrollo de Videojuegos y Lenguajes de Programación en Español
domingo, 22 de febrero de 2015
Mover Constructor Copia Visual C++
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario