#include <iostream>
class Outer
{
int o;
public:
void setOuter(int o)
{
this->o=o;
}
class Inner
{
public:
int i;
int retOuter(Outer *obj)
{
return obj->o;
}
};
};
int main(int argc, char **argv) {
Outer::Inner obj;
obj.i=20;
std::cout<<"Inner i = "<<obj.i<<std::endl;
Outer *obj1=new Outer;
obj1->setOuter(40);
std::cout<<"Outer o = "<<obj.retOuter(obj1)<<std::endl;
obj1->Inner::i =50; //Access the inner class members by Outer class object!
}
上記のコードは、最後の行を除いてすべて問題ありません。外部クラス オブジェクトを使用して内部クラス メンバーにアクセスできないのはなぜですか? 外部クラス オブジェクトには、すべてのパブリック メンバー アクセスが必要class Outer
です。外部クラスに含まれているため、内部クラス オブジェクトを作成したときの動作はどうですか!