Digamos que tengo una clase definida de la siguiente manera:declarar una instancia de una clase const
class foo{};
ahora, esto es perfectamente aceptable;
foo f;
¿cómo es que esto es un error de compilación? (uninitialized const ‘f’
)
const foo f;
¿Por qué tenemos que hacer esto?
const foo f = foo();
sé por qué no podemos hacer esto ..
const foo f(); // though it compiles..
Curiosamente, es válido lo siguiente:
const std::string f;
Así que lo que falta en foo
?
Me doy cuenta de que hay tres preguntas allí y es mala forma, pero espero que alguien pueda aclararme esto en una respuesta.
EDIT: no dude en cerrarla si es estúpida ...
Por cierto, he visto muchas preguntas estúpidas sobre Stack Overflow. La tuya * no * es una pregunta estúpida de ninguna manera. –
@Konrad Rudolph, estaba sentado allí rascándome la cabeza, y normalmente cuando eso me sucede, es inevitable porque he hecho algo estúpido ... :) – Nim