Нет, вы не можете получить доступ к derived_int
, потому что derived_int
является частью Derived
, а basepointer
является указателем на Base
.
Вы можете сделать это наоборот:
Derived* derivedpointer = new Derived;
derivedpointer->base_int; // You can access this just fine
Производные классы наследуют члены базового класса, а не наоборот.
Однако, если ваш basepointer
указывал на экземпляр Derived
, вы можете получить к нему доступ через приведение:
Base* basepointer = new Derived;
static_cast<Derived*>(basepointer)->derived_int; // Can now access, because we have a derived pointer
Обратите внимание, что сначала вам нужно изменить свое наследование на public
:
class Derived : public Base