2011-12-03 35 views

答えて

24

Settings::iteratorおよびSettings::const_iteratorは、Settingsクラスのすべてのユーザーがアクセスできます。

C++でのアクセス制御は、名前にのみ適用されます。 ISO/IEC 14882:2011 11 [class.access]/4には、これが意図であることが明確になるノートと例があります。

[...] [注:アクセス制御が名に適用されるため、アクセス制御が は、typedefの名前に適用された場合、typedefの名前自体の唯一のアクセス可能性が考慮されます。 typedefによって参照されるエンティティのアクセシビリティ は考慮されません。例えば、

class A { 
    class B { }; 
public: 
    typedef B BB; 
}; 

void f() { 
    A::BB x; // OK, typedef name A::BB is public 
    A::B y; // access error, A::B is private 
} 

からエンドノート]

関連する問題