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 클래스 멤버에 액세스 할 수 없습니까? 외부 클래스 객체는 public 멤버 접근 권한이 모두 class Outer
이어야합니다. 그리고 Outer 클래스에 포함 된 Inner 클래스 객체를 만들 때 어떻게 동작합니까?외부 클래스 객체를 사용하여 내부 클래스 멤버에 액세스 할 수 없습니다.
그러면 Outer 클래스 객체가 내부 클래스 'i' 값을 갖는 방법은 무엇입니까? Inner 클래스의 객체를'obj1-> Inner objInner;로 만들 필요가 있는가? objInner.i = 50; ' –
@SoumyajitRoy 귀하의 코드에서와 같이, Outer 클래스에는 Inner 유형의 멤버가 없습니다. 저것을하는 방법에 관해서는 잘게 잘린 것을 보아라. –
예 코드 스 니펫이 완벽하게 작동합니다. 내 이해를 명확히하기 위해 Inner 클래스는 다른 일반 멤버와 마찬가지로 Outer 클래스의 멤버가 아닙니다. 권리? 실제로 Inner 클래스 정의는 'innerMember'유형으로 작동합니다. 내가 맞습니까? 'int innerMember'와 동일 –