class B { protected: int n; }; class D : public B { public: D( B const& rhs ) { n = 1;// ok n = rhs.n;// error } }; ↑のようなアクセスがエラーになります。 自分のn(this->n)にはアクセスできるのに、 他のインスタンスのn(rhs.n)にはアクセスできないということでしょうか?
ちなみに、cygwinのgcc3.2で、エラーメッセージは : In constructor `D::D(const B&)': :4: `int B::n' is protected :12: within this context となります。
>g++ t96.cpp t96.cpp:6: parse error before `namespace' t96.cpp:8: 'string' is used as a type, but is not defined as a type. t96.cpp: In function `int main()': t96.cpp:16: `struct T' has no member named `s' t96.cpp:18: `struct T' has no member named `s'
>bcc32 t96.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland t96.cpp: エラー E2070 t96.cpp 6: 名前空間 'using' が不正に使われた *** 1 errors in Compile ***