Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO Pensar en C++ (Volumen 1) - Grupo ARCO
✐ ✐ ✐ “Volumen1” — 2012/1/12 — 13:52 — page 468 — #506 ✐ Capítulo 15. Polimorfismo y Funciones virtuales Para simplificar las cosas se crea todo en el fichero cabecera, la definición (requerida) del destructor virtual puro es introducida en línea el el fichero cabecera, y pop() también está en línea aunque podría ser considearado como demasiado largo para ser incluido así. Los objetos Link (lista) ahora manejan punteros a Object en vez de punteros a void, y la Stack (pila) sólo aceptará y devolverá punteros a Object. Ahora Stack es mucho más flexible, ya que puede manejar un montón de tipos diferentes pero además es capaz de destruirá cualquier objeto dejado en la pila. La nueva limitación (que será finalmente eliminada cuando las plantillas se apliquen al problema en el capítulo 16) es que todo lo que se ponga en la pila debe ser heredado de Object. Esto está bien si se crea una clase desde la nada, pero ¿qué pasa si se tiene una clase como string y se quiere ser capaz de meterla en la pila En este caso, la nueva clase debe ser al mismo tiempo un string y un Object, lo que significa que debe heredar de ambas clases. Esto se conoce como herencia múltiple y es materia para un capítulo entero en el Volumen 2 de este libro (se puede bajar de www.BruceEckel.com). cuando se lea este capítulo, se verá que la herencia múltiple genera un montón de complejidad, y que es una característica que hay que usar con cuentagotas. Sin embargo, ésta situación es lo suficiéntemente simple como para no tener problemas al usar herencia múltiple: //: C15:OStackTest.cpp //{T} OStackTest.cpp #include "OStack.h" #include "../require.h" #include #include #include using namespace std; // Use multiple inheritance. We want // both a string and an Object: class MyString: public string, public Object { public: ~MyString() { cout
✐ ✐ ✐ “Volumen1” — 2012/1/12 — 13:52 — page 469 — #507 ✐ 15.11. Sobrecarga de operadores
- Page 455 and 456: ✐ ✐ ✐ “Volumen1” — 2012
- Page 457 and 458: ✐ ✐ ✐ “Volumen1” — 2012
- Page 459 and 460: ✐ ✐ ✐ “Volumen1” — 2012
- Page 461 and 462: ✐ ✐ ✐ “Volumen1” — 2012
- Page 463 and 464: ✐ ✐ ✐ “Volumen1” — 2012
- Page 465 and 466: ✐ ✐ ✐ “Volumen1” — 2012
- Page 467 and 468: ✐ ✐ ✐ “Volumen1” — 2012
- Page 469 and 470: ✐ ✐ ✐ “Volumen1” — 2012
- Page 471 and 472: ✐ ✐ ✐ “Volumen1” — 2012
- Page 473 and 474: ✐ ✐ ✐ “Volumen1” — 2012
- Page 475 and 476: ✐ ✐ ✐ “Volumen1” — 2012
- Page 477 and 478: ✐ ✐ ✐ “Volumen1” — 2012
- Page 479 and 480: ✐ ✐ ✐ “Volumen1” — 2012
- Page 481 and 482: ✐ ✐ ✐ “Volumen1” — 2012
- Page 483 and 484: ✐ ✐ ✐ “Volumen1” — 2012
- Page 485 and 486: ✐ ✐ ✐ “Volumen1” — 2012
- Page 487 and 488: ✐ ✐ ✐ “Volumen1” — 2012
- Page 489 and 490: ✐ ✐ ✐ “Volumen1” — 2012
- Page 491 and 492: ✐ ✐ ✐ “Volumen1” — 2012
- Page 493 and 494: ✐ ✐ ✐ “Volumen1” — 2012
- Page 495 and 496: ✐ ✐ ✐ “Volumen1” — 2012
- Page 497 and 498: ✐ ✐ ✐ “Volumen1” — 2012
- Page 499 and 500: ✐ ✐ ✐ “Volumen1” — 2012
- Page 501 and 502: ✐ ✐ ✐ “Volumen1” — 2012
- Page 503 and 504: ✐ ✐ ✐ “Volumen1” — 2012
- Page 505: ✐ ✐ ✐ “Volumen1” — 2012
- Page 509 and 510: ✐ ✐ ✐ “Volumen1” — 2012
- Page 511 and 512: ✐ ✐ ✐ “Volumen1” — 2012
- Page 513 and 514: ✐ ✐ ✐ “Volumen1” — 2012
- Page 515 and 516: ✐ ✐ ✐ “Volumen1” — 2012
- Page 517 and 518: ✐ ✐ ✐ “Volumen1” — 2012
- Page 519 and 520: ✐ ✐ ✐ “Volumen1” — 2012
- Page 521 and 522: ✐ ✐ ✐ “Volumen1” — 2012
- Page 523 and 524: ✐ ✐ ✐ “Volumen1” — 2012
- Page 525 and 526: ✐ ✐ ✐ “Volumen1” — 2012
- Page 527 and 528: ✐ ✐ ✐ “Volumen1” — 2012
- Page 529 and 530: ✐ ✐ ✐ “Volumen1” — 2012
- Page 531 and 532: ✐ ✐ ✐ “Volumen1” — 2012
- Page 533 and 534: ✐ ✐ ✐ “Volumen1” — 2012
- Page 535 and 536: ✐ ✐ ✐ “Volumen1” — 2012
- Page 537 and 538: ✐ ✐ ✐ “Volumen1” — 2012
- Page 539 and 540: ✐ ✐ ✐ “Volumen1” — 2012
- Page 541 and 542: ✐ ✐ ✐ “Volumen1” — 2012
- Page 543 and 544: ✐ ✐ ✐ “Volumen1” — 2012
- Page 545 and 546: ✐ ✐ ✐ “Volumen1” — 2012
- Page 547 and 548: ✐ ✐ ✐ “Volumen1” — 2012
- Page 549 and 550: ✐ ✐ ✐ “Volumen1” — 2012
- Page 551 and 552: ✐ ✐ ✐ “Volumen1” — 2012
- Page 553 and 554: ✐ ✐ ✐ “Volumen1” — 2012
- Page 555 and 556: ✐ ✐ ✐ “Volumen1” — 2012
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 469 — #507<br />
✐<br />
15.11. Sobrecarga de operadores<br />