Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 405 — #443<br />
✐<br />
14.2. Sintaxis de la her<strong>en</strong>cia<br />
y.permute();<br />
} ///:~<br />
Aquí, la función permute() se ha añadido a la interfaz de la clase, pero el resto<br />
funciones de X son utilizadas d<strong>en</strong>tro de los miembros de Y.<br />
14.2. Sintaxis de la her<strong>en</strong>cia<br />
La sintaxis <strong>en</strong> la composición es bastante obvia, <strong>en</strong> cambio <strong>en</strong> la her<strong>en</strong>cia, la sintaxis<br />
es nueva y difer<strong>en</strong>te.<br />
Cuando hereda, realm<strong>en</strong>te se expresa "Esta nueva clase es como esta otra vieja<br />
clase". Se comi<strong>en</strong>za el código proporcionando el nombre de la clase, como se realiza<br />
normalm<strong>en</strong>te, pero antes de abrir la llave del cuerpo de la clase, se colocan dos<br />
puntos y el nombre de la clase base (o de las clases bases, separadas por comas, para<br />
her<strong>en</strong>cia múltiple). Una vez realizado, automáticam<strong>en</strong>te se consigu<strong>en</strong> todos los<br />
miembros y las funciones de la clase base. Ejemplo:<br />
//: C14:Inheritance.cpp<br />
// Simple inheritance<br />
#include "Useful.h"<br />
#include <br />
using namespace std;<br />
class Y : public X {<br />
int i; // Differ<strong>en</strong>t from X’s i<br />
public:<br />
Y() { i = 0; }<br />
int change() {<br />
i = permute(); // Differ<strong>en</strong>t name call<br />
return i;<br />
}<br />
void set(int ii) {<br />
i = ii;<br />
X::set(ii); // Same-name function call<br />
}<br />
};<br />
int main() {<br />
cout