Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 196 — #234<br />
✐<br />
Capítulo 6. Inicialización y limpieza<br />
Dado que inflate() es privado, el único modo <strong>en</strong> que require() podría fallar<br />
sería si uno de los otros miembros pasara accid<strong>en</strong>talm<strong>en</strong>te un valor incorrecto a<br />
inflate(). Si está seguro de que eso no puede pasar, debería considerar eliminar<br />
el require(), pero debería t<strong>en</strong>er <strong>en</strong> m<strong>en</strong>te que hasta que la clase sea estable, siempre<br />
existe la posibilidad de que el código nuevo añadido a la clase podría provocar<br />
errores. El coste de require() es bajo (y podría ser eliminado automáticam<strong>en</strong>te por<br />
el preprocesador) mi<strong>en</strong>tras que la robustez del código es alta.<br />
Fijese cómo <strong>en</strong> el sigui<strong>en</strong>te programa de prueba la definición de los objetos Stash<br />
aparece justo antes de necesitarse, y cómo la inicialización aparece como parte<br />
de la definición, <strong>en</strong> la lista de argum<strong>en</strong>tos del constructor.<br />
//: C06:Stash2Test.cpp<br />
//{L} Stash2<br />
// Constructors & destructors<br />
#include "Stash2.h"<br />
#include "../require.h"<br />
#include <br />
#include <br />
#include <br />
using namespace std;<br />
int main() {<br />
Stash intStash(sizeof(int));<br />
for(int i = 0; i < 100; i++)<br />
intStash.add(&i);<br />
for(int j = 0; j < intStash.count(); j++)<br />
cout