C++/Class 2021. 3. 16. 00:11

Nested Types

  • 클래스 안에서만 사용하는 자료형은 클래스 내부에 정의하는게 좋다.

예제

  • unscoped enum 사용

    #include <iostream>
    
    class Fruit
    {
    public:
      enum FruitType
      {
        APPLE, BANANA, CHERRY
      };
    
    private:
      FruitType    type_;
    
    public:
      Fruit(FruitType type) : type_(type)
      {}
    
      FruitType    getType()
      {
        return type_;
      }
    };
    
    int        main()
    {
      Fruit    apple(Fruit::APPLE);
    
      if (apple.getType() == Fruit::APPLE)
      {
        std::cout << "Apple" << std::endl;
      }
    }
    
    /* stdout
    Apple
    */
  • enum class 사용

    #include <iostream>
    
    class Fruit
    {
    public:
      enum class FruitType
      {
        APPLE, BANANA, CHERRY
      };
    
    private:
      FruitType    type_;
    
    public:
      Fruit(FruitType type) : type_(type)
      {}
    
      FruitType    getType()
      {
        return type_;
      }
    };
    
    int        main()
    {
      Fruit    apple(Fruit::FruitType::APPLE);
    
      if (apple.getType() == Fruit::FruitType::APPLE)
      {
        std::cout << "Apple" << std::endl;
      }
    }
    
    /* stdout
    Apple
    */

'C++ > Class' 카테고리의 다른 글

C++ 구성 관계 (Composition Relationship)  (0) 2021.03.19
C++ 객체들의 관계 (Object Relationship)  (0) 2021.03.19
C++ 익명 객체 (Anonymous Class)  (0) 2021.03.16
C++ friend  (0) 2021.03.16
C++ 정적 멤버 함수 (Static Member Function)  (0) 2021.03.16