#include <iostream>
using namespace std;
// nested types
enum FruitType
{
APPLE, BANANA, CHERRY,
};
class Fruit
{
private:
FruitType m_type;
public:
Fruit(FruitType type) : m_type(type)
{}
FruitType getType() { return m_type; }
};
int main()
{
Fruit fruit(CHERRY);
cout << fruit.getType() << endl;
}
enum 을 사용해 과일의 타입을 정의했습니다. class 에서 type 을받아서 숫자를 리턴하고 있습니다.
하지만 Fruittype 이라는 enum 은 Fruit class 만 사용하기 때문에 class 안으로 넣어주도록 하겠습니다.
#include <iostream>
using namespace std;
// nested types
class Fruit
{
public:
enum FruitType
{
APPLE, BANANA, CHERRY,
};
private:
FruitType m_type;
public:
Fruit(FruitType type) : m_type(type)
{}
FruitType getType() { return m_type; }
};
int main()
{
Fruit fruit(Fruit::CHERRY);
cout << fruit.getType() << endl;
}
여러 클래스가 공통적으로 사용하는 class 일경우에는 밖으로 빼고 헤더를 따로 만들어 include 하는게 편하지만
특정 class 만 사용하는 datatype 일때는 class 안에서 임시로 사용하는 방법으로 구현합니다.