C++
이너클래스(Inner Class)
Nin
2021. 1. 4. 14:31
class A
{
public:
class AInner
{
public:
int Data;
};
public:
A()
{
}
~A()
{
}
};
int main()
{
A::AIner InnerNew = A::AInner();
}
이너클래스의 사용법은 위와 같고 클래스 내부에 그 클래스의 이름을 종속 받는
다른 클래스를 만들어 내는것이다.
namespace AInner
{
class AInner
{
public:
int Data;
};
}
개념적으로 보면 네임스페이스와 비슷하다.
이너클래스는 그냥 클래스를 하나 새롭게 만드는것이고
동작역시 기존 클래스와 똑같이 동작한다.
다만 사용할때 A::을 붙여줘야 한다.
그럼 네임스페이스와 다른점은 무엇일까?
그건 접근제한 지정자를 가지고 있다는 것이다.
class A
{
private:
class AInner
{
public:
int Data;
};
이렇게 private를 변경해주면 외부에서 사용이 불가능해진다.
이 클래스는 A클래스 내부에서만 사용하겠다가 되는것이다.