Manual básico de Programación en C++
class Arboles { ... int arboles( ) const; int arboles( ); }; En el ejemplo anterior, el modificador const declara dos métodos distintos. El primero se usa en contextos constantes y el segundo en contextos variables. This apunta al objeto invocador. Las aplicaciones reales requieren que los nodos lleven datos. Esto significa especializar los nodos. Los datos pueden ser de cualquier tipo; usamos la construcción de plantilla: template class DatoNodo : public Nodo // La plantilla DatoNodo especializa la clase Nodo para que transporte da- // tos de cualquier tipo. Añade funcionalidad para accesar su elemento de // datos y también ofrece el mismo conjunto de funcionalidad estándar: // Copy Constructor, operator = ( ) y operator = = ( ). { T _data; public : DatoNodo ( const T dato, DatoNodo *derecha = NULL) : Nodo ( derecha ), _dato ( dato) { } DatoNodo ( const DatoNodo &val) : Nodo ( val), _dato ( val._dato) { } const DatoNodo *derecha ( ) const { return ((DatoNodo *) Nodo :: derecha( ) ); } DatoNodo *&derecha( ) {return ((DatoNodo *&) Nodo :: derecha( ) );} const T &dato( ) const { return _dato ;} T &dato ( ) { return _dato ;} DatoNodo &operator = ( const DatoNodo &val) { Nodo :: operator = (val); _dato = val._dato; return *this; }
Continuamos : }; const int operator == ( const DatoNodo &val) const { return ( Nodo :: operator == (val) && _data == val._dato ) ; } const int operator != ( const DatoNodo &val) const { return !( *this == val); }
- Page 1 and 2: Manual básico de Programación en
- Page 3 and 4: 3.6. Cuándo son llamados los destr
- Page 5 and 6: A continuación se muestra dos tabl
- Page 7 and 8: 2.4. PROTOTIPOS DE FUNCION Y VERIFI
- Page 9 and 10: 2.8. ASIGNACION DINAMICA DE MEMORIA
- Page 11 and 12: 2.11. PLANTILLAS DE FUNCION Las pla
- Page 13 and 14: La función con el mismo nombre que
- Page 15 and 16: 3.4. COMO INICIALIZAR OBJETOS DE CL
- Page 17 and 18: }; // Continuamos con el ejemplo: P
- Page 19 and 20: 4.2. COMPOSICION: CLASES COMO MIEMB
- Page 21 and 22: 4.5. ASIGNACION DINAMICA DE MEMORIA
- Page 23 and 24: Una clase plantilla se produce espe
- Page 25 and 26: No es posible modificar el número
- Page 27 and 28: 6. HERENCIA La herencia es una form
- Page 29 and 30: 6.3. CONSTRUCCION Y DESTRUCCION En
- Page 31: 8. PLANTILLAS PARA LOS NODOS El nod
- Page 35 and 36: En los ordenadores Alpha OSF/1 de l
- Page 37 and 38: 10.3. ENTRADAS/SALIDAS SIN FORMATO
- Page 39 and 40: double calc_cosec ( void ) ; double
- Page 41 and 42: cout
- Page 43 and 44: int absoluto::ab( int val1 ) { int
- Page 45 and 46: { cout
- Page 47 and 48: void main( void ) { Estudiante_Est
class Arboles<br />
{<br />
...<br />
int arboles( ) const;<br />
int arboles( );<br />
};<br />
En el ejemplo anterior, el modificador const <strong>de</strong>clara dos métodos distintos. El primero<br />
se usa <strong>en</strong> contextos constantes y el segundo <strong>en</strong> contextos variables.<br />
This apunta al objeto invocador.<br />
Las aplicaciones reales requier<strong>en</strong> que los nodos llev<strong>en</strong> datos. Esto significa<br />
especializar los nodos. Los datos pue<strong>de</strong>n ser <strong>de</strong> cualquier tipo; usamos la construcción<br />
<strong>de</strong> plantilla:<br />
template <br />
class DatoNodo : public Nodo<br />
// La plantilla DatoNodo especializa la clase Nodo para que transporte da-<br />
// tos <strong>de</strong> cualquier tipo. Aña<strong>de</strong> funcionalidad para accesar su elem<strong>en</strong>to <strong>de</strong><br />
// datos y también ofrece el mismo conjunto <strong>de</strong> funcionalidad estándar:<br />
// Copy Constructor, operator = ( ) y operator = = ( ).<br />
{<br />
T _data;<br />
public :<br />
DatoNodo ( const T dato, DatoNodo *<strong>de</strong>recha = NULL) :<br />
Nodo ( <strong>de</strong>recha ), _dato ( dato) { }<br />
DatoNodo ( const DatoNodo &val) :<br />
Nodo ( val), _dato ( val._dato) { }<br />
const DatoNodo *<strong>de</strong>recha ( ) const {<br />
return ((DatoNodo *) Nodo :: <strong>de</strong>recha( ) );<br />
}<br />
DatoNodo *&<strong>de</strong>recha( ) {return ((DatoNodo *&) Nodo :: <strong>de</strong>recha( ) );}<br />
const T &dato( ) const { return _dato ;}<br />
T &dato ( ) { return _dato ;}<br />
DatoNodo &operator = ( const DatoNodo &val) {<br />
Nodo :: operator = (val);<br />
_dato = val._dato;<br />
return *this;<br />
}