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 479 — #517<br />

✐<br />

16: Introducción a las Plantillas<br />

La her<strong>en</strong>cia y la composición proporcionan una forma de retilizar<br />

código objeto. Las plantillas de <strong>C++</strong> proporcionan una manera de<br />

reutilizar el código fu<strong>en</strong>te.<br />

Aunque las plantillas (o templates) son una herrami<strong>en</strong>ta de programación de<br />

propósito g<strong>en</strong>eral, cuando fueron introducidos <strong>en</strong> el l<strong>en</strong>guaje, parecían oponerse<br />

al uso de las jerarquías de clases cont<strong>en</strong>edoras basadas <strong>en</strong> objetos (demostrado al<br />

final del Capítulo 15). Además, los cont<strong>en</strong>edores y algoritmos del <strong>C++</strong> Standard<br />

(explicados <strong>en</strong> dos capítulos del Volum<strong>en</strong> 2 de este libro, que se puede bajar de<br />

www.BruceEckel.com) están construidos exclusivam<strong>en</strong>te con plantillas y son relativam<strong>en</strong>te<br />

fáciles de usar por el programador.<br />

Este capítulo no sólo muestra los fundam<strong>en</strong>tos de los templates, también es una<br />

introducción a los cont<strong>en</strong>edores, que son compon<strong>en</strong>tes fundam<strong>en</strong>tales de la programación<br />

ori<strong>en</strong>tada a objetos lo cual se evid<strong>en</strong>cia a través de los cont<strong>en</strong>edores de la<br />

librería estándar de <strong>C++</strong>. Se verá que este libro ha estado usando ejemplos cont<strong>en</strong>edores<br />

- Stash y Stack- para hacer más s<strong>en</strong>cillo el concepto de los cont<strong>en</strong>edores;<br />

<strong>en</strong> este capítulo se sumará el concepto del iterator. Aunque los cont<strong>en</strong>edores son<br />

el ejemplo ideal para usarlos con las plantillas, <strong>en</strong> el Volum<strong>en</strong> 2 (que ti<strong>en</strong>e un capítulo<br />

con plantillas avanzadas) se apr<strong>en</strong>derá que también hay otros usos para los<br />

templates.<br />

16.1. Cont<strong>en</strong>edores<br />

Supóngase que se quiere crear una pila, como se ha estado haci<strong>en</strong>do a través de<br />

este libro. Para hacerlo s<strong>en</strong>cillo, esta clase manejará <strong>en</strong>teros.<br />

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

// Simple integer stack<br />

//{L} fibonacci<br />

#include "fibonacci.h"<br />

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

#include <br />

using namespace std;<br />

class IntStack {<br />

<strong>en</strong>um { ssize = 100 };<br />

int stack[ssize];<br />

int top;<br />

public:<br />

IntStack() : top(0) {}<br />

void push(int i) {<br />

479<br />

✐<br />

✐<br />

✐<br />

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

Saved successfully!

Ooh no, something went wrong!