So you want ctwo instances to be able to access cobject from the base (cone) class? Maybe like this?
As you can see, Derived can acess data_, and the virtual keyword isn't involed. May I suggest, though, that using protected data members if poor practice. It is better to provide an interface to base class data through base class protected functions (for example, providing a SetData method inside Base, and declaraing data_ as a private member).Code:#include <iostream> class Base { public: Base(int data):data_(data){} void PrintData() { std::cout<<data_; } protected: int data_; }; class Derived: public Base { public: Derived():Base(0){} void SetData(int data){ data_ = data; } }; int main() { Derived d; d.SetData(5); d.PrintData(); }