Digamos que tenemos un test.cpp
de la siguiente manera:¿Por qué no puedo declarar una referencia a un objeto mutable? ("Referencia no puede ser declarada mutable")
class A;
class B
{
private:
A mutable& _a;
};
Compilación:
$> gcc test.cpp
test.cpp:6:20: error: reference ‘_a’ cannot be declared ‘mutable’ [-fpermissive]
Mi gcc:
$> gcc --version
gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
¿Por qué?
¿Está buscando un puntero? –
Incluso si pudiera hacer esto, sería inútil porque C++ no contiene ninguna sintaxis que pueda cambiar una referencia. Ni siquiera puedes obtener la dirección de memoria de una referencia. Si lo intenta, obtendrá la dirección del objeto al que apunta la referencia. – bames53
Lo siento, hice la pregunta incorrecta. Esta no es una referencia mutable, ¡esta es una referencia a un objeto mutable! (Cambié el título) – Martin