13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!