So you want ctwo instances to be able to access cobject from the base (cone) class? Maybe like this?
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();
}
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).