선택지가 제한된 타입에서는 무조건 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 |