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 306 — #344<br />
✐<br />
Capítulo 10. Control de nombres<br />
31. Cree una clase que repres<strong>en</strong>te una conexión a impresora, y que sólo le permita<br />
t<strong>en</strong>er una impresora.<br />
32. En un archivo de cabecera, cree una clase Mirror que conti<strong>en</strong>e dos atributos:<br />
un puntero a un objeto Mirror y un bool. Déle dos constructores: el constructor<br />
por defecto inicializa el bool a true y el puntero a Mirror a cero. El<br />
segundo constructor toma como argum<strong>en</strong>to un puntero a un objeto Mirror,<br />
que asigna al puntero interno del objeto; pone el bool a false. Añada un método<br />
test(): si el puntero del objeto es distinto de cero, devuelve el valor de<br />
test() llamado a través del puntero. Si el puntero es cero, devuelve el bool.<br />
Cree ahora cinco archivos cpp, cada uno incluy<strong>en</strong>do la cabecera Mirror. El<br />
primer archivo cpp define un objeto Mirror global utilizando el constructor<br />
por defecto. El segundo archivo declara el objeto del primer archivo como e-<br />
xtern, y define un objeto Mirror global utilizando el segundo constructor,<br />
con un puntero al primer objeto. Siga haci<strong>en</strong>do lo mismo hasta que llegue al<br />
último archivo, que también cont<strong>en</strong>drá una definición de objeto global. En este<br />
archivo, main() debe llamar a la función test() e informar del resultado. Si<br />
el resultado es true, <strong>en</strong>cu<strong>en</strong>tre la forma de cambiar el ord<strong>en</strong> de <strong>en</strong>lazado de<br />
su <strong>en</strong>lazador y cámbielo hasta que el resultado sea false.<br />
33. Repare el problema del Ejercicio 32 utilizando la técnica uno mostrada <strong>en</strong> este<br />
libro.<br />
34. Repare el problema del Ejercicio 32 utilizando la técnica dos mostrada <strong>en</strong> este<br />
libro.<br />
35. Sin incluir ningún archivo de cabecera, declare la función puts() de la Librería<br />
Estándar de C. Llame a esa función desde main().<br />
306<br />
✐<br />
✐<br />
✐<br />
✐