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클래스 내부에서만 사용하겠다가 되는것이다.