Why this won't compile? What am I missing?
class Base
{
public:
Base() : data(0) { }
protected:
int data;
};
class Derived : public Base
{
public:
Derived() : Base() { }
Derived& operator=(const Base& _base)
{
data = _base.data; // protected member Base::data is not accessible through a "Base" pointer or object.
}
};
Why is that, since data member has protected visibility (so that derived classes can access it).