我有以下代碼的公共成員:C++:私人嵌套類型
class Base
{
private:
class NestedBase
{
public:
void Do() {}
};
public:
NestedBase nested;
};
int main()
{
Base b;
b.nested.Do(); // line A compiles
Base::NestedBase instance; // line B doesn't compile
}
NestedBase
類是一個私有嵌套類Base
,如此看來自然的線B不編譯。但是,在另一方面,可變b
具有公共部件nested
,我可以從外面Base
調用其方法Do()
(如在A線)。什麼是規範獲得了在這種情況下,私有嵌套類(或它的成員)的精確的規則?標準對此有何評論?
我認爲'基地:: nested'必須_public_ Base'的'成員。 @弗拉德,你的意思是? – dyomas