У меня есть функция-член, возвращающая ссылку const
на экземпляр класса.
Пример:
class State
{
const City* city1;
public:
State(const City& c) : city1(c) {}
const City& getReference() const {return *city1;}
void changeStuff();
};
Как получить неконстантный City *
, указывающий на city1 с помощью const_cast и getReference ()?
Кроме того, выполнив следующее, я смог достичь того, чего хотел, без использования const_cast:
(Предполагая, что уже есть экземпляр State с именем state1
)
City ref = state1.getReference(); //Why does it work?
City * ptr = &ref; //This is what I wanted, but not this way
ref->changeStuff(); //How can I call functions changing things if the reference was constant?
Как я могу получить неконстантную ссылку от функции, возвращающей константную ссылку и даже установщиков вызовов?
Спасибо за внимание