The following code fails to compile:
class A {
protected:
int i;
};
class B {
class C : public A {
public:
void foo(A a) {
a.i = 1;
}
};
};
int main()
{
}
nest2.cpp: In member function 'void B::C::foo(A)':
nest2.cpp:3: error: 'int A::i' is protected
nest2.cpp:10: error: within this context
I can't find anything in the standard that says this should be invalid, but
perhaps I missed it. Thanks for your time and efforts.
--
Summary: nested inherited class can't access protected members of
base class
Product: gcc
Version: 4.2.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: darkwingz at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37112