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