Один из подходов (уже упоминавшийся во всех других ответах) - использовать квалифицированное имя члена, например Base::member
. Его можно использовать в сочетании с явным доступом через указатель this
, если это ваш стиль: this->Base::member
.
Другой подход заключается в выполнении доступа через указатель this
, явно преобразованный в тип базового класса: ((Base *) this)->member
.
Конечно, приведенные выше ссылки на указатель this
сделаны при условии, что вы пытаетесь получить доступ к члену из некоторой нестатической функции-члена класса. Чтобы получить доступ извне, те же приемы могут быть применены к любому другому указателю (или ссылке): some_pointer->Base::member
или ((Base *) some_pointer)->member
.
Для элементов данных эти два подхода эквивалентны. Для функций-членов они могут привести к различным результатам с виртуальными функциями. По этой причине, как правило, первый подход должен быть предпочтительным.