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 491 — #529<br />

✐<br />

16.4. Stack y Stash como Plantillas<br />

Link* oldHead = head;<br />

head = head->next;<br />

delete oldHead;<br />

return result;<br />

}<br />

};<br />

#<strong>en</strong>dif // TSTACK_H ///:~<br />

Si se compara esto al ejemplo de OStack.h al final del capítulo 15, se verá que<br />

Stack es virtualm<strong>en</strong>te idéntica, excepto que Object ha sido reemplazado con T.<br />

El programa de prueba también es casi idéntico, excepto por la necesidad de múltiple<br />

her<strong>en</strong>cia de string y Object (incluso por la necesidad de Object <strong>en</strong> sí mismo)<br />

que ha sido eliminada. Ahora no t<strong>en</strong>emos una clase MyString para anunciar su<br />

destrucción por lo que añadimos una pequeña clase nueva para mostrar como la<br />

clase cont<strong>en</strong>edora Stack limpia sus objetos:<br />

//: C16:TStackTest.cpp<br />

//{T} TStackTest.cpp<br />

#include "TStack.h"<br />

#include "../require.h"<br />

#include <br />

#include <br />

#include <br />

using namespace std;<br />

class X {<br />

public:<br />

virtual ~X() { cout

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

Saved successfully!

Ooh no, something went wrong!