0
#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!
}
除了最后一行,上述代码中的所有内容都很好。为什么我无法使用Outer类对象访问Inner类成员?外部类对象应具有class Outer
的所有公共成员访问权当我创建一个内部类对象时它的行为如何,因为它包含在外部类中!无法使用外部类对象访问内部类成员
好的。那么外部类对象如何拥有自己的内部类“我”的价值?我是否需要为Inner类创建对象:obj1-> Inner objInner; objInner.i = 50;' – 2013-04-05 20:51:41
@SoumyajitRoy作为你的代码,Outer类没有Inner类型的成员。看到我的剪辑如何做到这一点。 – 2013-04-05 20:55:04
是的你的代码片段完美的作品。为了澄清我对Inner类的理解,那么不像其他普通成员那样是Outer类的成员。对?实际上,Inner类定义是作为'innerMember'的一种类型工作的。我对吗?与'int innerMember'一样 – 2013-04-05 21:00:43