#include <iostream>
#include <cstdlib>
using namespace std;
class DArray
{
public:
DArray( int nLengthOfArray = 0 ) : nLength( nLengthOfArray ) , pArray( nullptr )
{
cout << "Creando el tamaño de DArray = " << nLength << endl;
if( nLength > 0 )
{
pArray = new int[ nLength ];
}
}
DArray( DArray &da )
{
cout << "Copiando el tamaño de DArray = " << da.nLength << endl;
copyDArray( da );
}
~DArray()
{
deleteDArray();
}
//opearador de asignacion
DArray &operator = ( const DArray &s )
{
cout << "Asignando el tamaño fuente = " << s.nLength
<< " al tamaño objetivo: " << this -> nLength << endl;
//elimina las siguientes cosas
deleteDArray();
copyDArray( s );
//regresa la referencia del objeto
return *this;
}
int &operator[]( int index )
{
return pArray[ index ];
}
int size()
{
return nLength;
}
void display( ostream &out )
{
if( nLength > 0 )
{
out << pArray[ 0 ];
for( int i = 1 ; i < nLength ; i++ )
{
out << " , " << pArray[ i ];
}
}
}
protected:
void copyDArray( const DArray &da );
void deleteDArray();
int nLength;
int *pArray;
};
void DArray :: copyDArray( const DArray &source )
{
nLength = source.nLength;
pArray = nullptr;
if( nLength > 0 )
{
pArray = new int[ nLength ];
for( int i = 0 ; i < nLength ; i++ )
{
pArray[ i ] = source.pArray[ i ];
}
}
}
void DArray :: deleteDArray()
{
nLength = 0;
delete pArray;
pArray = nullptr;
}
int main( int argc , char *argv[] )
{
DArray da1( 5 );
for( int i = 0 ; i < da1.size() ; i++ )
{
da1[ i ] = i;
}
cout << "da1 = ";
da1.display( cout );
cout << endl;
DArray da2 = da1;
da2[ 2 ] = 20;
cout << "da2 = ";
da2.display( cout );
cout << endl;
da2 = da1;
cout << "da2 = ";
da2.display( cout );
cout << endl;
system("pause");
return 0;
}
Herramientas Para el Desarrollo de Videojuegos y Lenguajes de Programación en Español
domingo, 22 de febrero de 2015
Operator Visual C++
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario