2009/6/29 Carlos Pantelides <[email protected]>:
> Supongamos ahora que quiero que una instancia en particular sea read-only:
>
> int main(int argc, char * arg[]) {
> const ConstantClass ccc();
> }
>
Probé el código que pasaste y el compilador chilla con el error:
const.cpp:18: error: request for member `getValue' in `ccc', which is
of non-class type `const ConstantClass ()()'
y es porque ccc es una función. La forma correcta de definirla es sin
el par de paréntesis:
| int main(int argc, char * arg[]) {
| const ConstantClass ccc;
| }
... de todas formas en ese caso se procuce el error:
const.cpp:17: error: uninitialized const `ccc'
Por lo que aparentemente el compilador tiene los medios para
determinar si el objeto esta inicializado o no.
> Parece haber una regla ahi, no? Alguien la conoce?
No la conozco, pero creo que esto es así ya que al ser const ninguna
asignación es válida; entonces solo puede ser inicializado en el
constructor y nunca será posible cambiar su valor. Luego, que el
objeto quede sin inicializar puede provocar el mal funcionamiento de
la aplicación.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion