Этот ответ является альтернативой этому решению на случай, если вам не разрешено изменять класс B
.
Если вам не разрешено изменять класс B
для добавления using A::doSomething;
внутри класса (как уже было предложено здесь ), вы можете взять указатель на функцию-член A::doSomething()
, а затем вызвать его через указатель этой функции-члена на экземпляре b
:
auto fptr = &A::doSomething;
B b;
(b.*fptr)();
или проще, при правильной квалификации функции-члена указатель на функцию-член не требуется:
B b;
b.A::doSomething(); // calls A::doSomething()