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 249 — #287<br />
✐<br />
8.7. Ejercicios<br />
22. Elimine el especificador const <strong>en</strong> la definición del método de ConstMember.<br />
cpp, pero deje el de la declaración para ver qué m<strong>en</strong>saje de error muestra el<br />
compilador.<br />
23. Cree una clase con un método constante y otro ordinario. Cree un objeto constante<br />
y otro no constante de esa clase e int<strong>en</strong>te invocar ambos métodos desde<br />
ambos objetos.<br />
24. Cree una clase con un método constante y otro ordinario. Int<strong>en</strong>te llamar al<br />
método ordinario desde el método constante para ver qué m<strong>en</strong>saje de error<br />
muestra el compilador.<br />
25. Elimine el com<strong>en</strong>tario de la línea errónea <strong>en</strong> mutable.cpp para ver el m<strong>en</strong>saje<br />
de error que muestra el compilador.<br />
26. Modifique Quoter.cpp haci<strong>en</strong>do que quote() sea un método constante y<br />
lastquote sea mutable.<br />
27. Cree una clase con un atributo volatile. Cree métodos volatile y no volatile<br />
que modifiqu<strong>en</strong> el atributo volatile y vea qué dice el compilador.<br />
Cree objetos volatile y no volatile de esa clase e int<strong>en</strong>te llamar a ambos<br />
métodos para comprobar si funciona correctam<strong>en</strong>te y ver qué m<strong>en</strong>sajes de<br />
error muestra el compilador <strong>en</strong> caso contrario.<br />
28. Cree una clase llamada bird que pueda ejecutar fly() y una clase rock que<br />
no pueda. Crear un objeto rock, tome su dirección y asigne a un void*. Ahora<br />
tome el void*, asígnelo a un bird* (debe usar un molde) y llame a fly()<br />
a través de dicho puntero. ¿Esto es posible porque la característica de C que<br />
permite asignar a un void* (sin un molde) es un agujero del l<strong>en</strong>guaje, que no<br />
debería propagarse a <strong>C++</strong><br />
249<br />
✐<br />
✐<br />
✐<br />
✐