본문 바로가기

C

C++ enum class(매우 중요)

선택지가 제한된 타입에서는 무조건 Enum을 쓰자.

정답 : 1,2,3,4,5 같은 것들 말이다.

인자를 string이나 int 같은 것으로 받는 경우에는 버그가 생기기 쉽다.

코드 >>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
 
// 인자를 string으로 받으면 버그가 발생하기 쉽다
// 따라서 enum을 사용하도록 하자
// 선택지가 객관식이라면 Enum을 사용하도록 하자
 
 
 
enum class Clothing_size{small, medium, large};
enum class Clothing_color{red, blue, yellow};
 
// 자체가 class이기 때문에 operator overloading도 가능
Clothing_size& operator++(Clothing_size& s)
{
    if (s == Clothing_size::large)
    {
        return s;
    }
    s = static_cast<Clothing_size>(static_cast<int>(s) + 1);
    return s;
}
 
void buyShirt(Clothing_color color, Clothing_size size)
{
    if (color == Clothing_color::red && size == Clothing_size::small)
    {
        std::cout << "color : red " << "clothing_size : small" << std::endl;
    }
}
 
int main()
{
    Clothing_color Ccolor = Clothing_color::red;
    Clothing_size Csize = Clothing_size::small;
    
    buyShirt(Ccolor, Csize);
    return 0;
    
}
 

'C' 카테고리의 다른 글

c++ exception 정리  (0) 2021.06.28
c++ Union, Variant  (0) 2021.06.28
c++ optional (C++17부터 지원)  (0) 2021.06.28
c++ tuple, pair  (0) 2021.06.28
c++ float 조심할 점  (0) 2021.06.28