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 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 />
✐