У меня есть функция устаревания, которая выглядит так:
int Random() const
{
return var_ ? 4 : 0;
}
и мне нужно вызвать функцию внутри этого унаследованного кода, чтобы теперь она выглядела следующим образом:
int Random() const
{
return var_ ? newCall(4) : 0;
}
Проблема в том, что я получаю эту ошибку:
In member function 'virtual int Random() const':
class.cc:145: error: passing 'const int' as 'this' argument of 'int newCall(int)' discards qualifiers
Теперь я знаю, чтобы исправить эту ошибку, я могу сделать мою функцию newCall()
const. Но тогда у меня есть несколько funciton-вызовов в newCall()
, которые я должен сделать, поэтому теперь мне придется делать все эти вызовы функций const. И так далее и так далее, пока, в конце концов, я не почувствую, что половина моей программы будет const.
Мой вопрос: есть ли способ вызвать функцию в Random(), которая не является константой? Или у кого-нибудь есть идеи о том, как реализовать newCall()
внутри Random()
, не делая половину моей программы const.
Спасибо
-josh