Consider the following example
class base { protected : int x = 5; int(base::*g); }; class derived :public base { void declare_value(); derived(); }; void derived:: declare_value() { g = &base::x; } derived::derived() :base() {} As per knowledge only friends and derived classes of the base class can access the protected members of the base class but in the above example I get the following error "Error C2248 'base::x': cannot access protected member declared in class " but when I add the following line
friend class derived; declaring it as friend , I can access the members of the base class , did I do some basic mistake in the declaring the derived class ?
derivedis private, so the class will be tricky to use, but I don't think that's the problem. Why not try it using a simpler access? For example, a derived class function that just returnsx(Hint: you won't need to specifybase::to access it)