Вызов константной функции из неконстантного объекта

Мне нужно вызвать const-функцию из неконстантного объекта. См пример

struct IProcess {
   virtual bool doSomeWork() const = 0L;
};
class Foo : public IProcess {    
  virtual bool doSomeWork() const {
    ...
  }
};

class Bar
{
public:
   const IProcess& getProcess() const {return ...;}
   IProcess& getProcess() {return ...;}

   void doOtherWork {
    getProcess().doSomeWork();        
  }
};

призвание

getProcess().doSomeWork();

всегда приводит к вызову

IProcess& getProcess()

Есть ли другой способ позвонить

const IProcess& getProcess() const 

из непостоянной функции-члена? Я до сих пор использовал

const_cast<const Bar*>(this)->getProcess().doSomeWork();

который добивается цели, но кажется слишком сложным.

Редактировать: я должен отметить, что код подвергается рефакторингу, и в конечном итоге останется только одна функция.

const IProcess& getProcess() const 

Однако в настоящее время существует побочный эффект, и вызов const может возвращать другой экземпляр IP-процесса в течение некоторого времени.

Пожалуйста, продолжайте тему.

Ответы на вопрос(11)

Ваш ответ на вопрос