728x90
enum 값을 사용할 때 for 문으로 enum 값을 증가시키면서 사용하는 방식을 사용할 수도 있습니다. 이럴 때 enum을 정의한 후 바로 증가 연산자를 사용할 수 없고 operator++를 재정의 해주어야 합니다.
enum fruit {
frApple,
frOrange,
num_of_fruit
};
fruit& operator++(fruit& fr) {
fr = static_cast<fruit>(static_cast<int>(fr) + 1);
return fr;
}
fruit operator++(fruit& fr, int) {
fruit temp = fr;
fr = static_cast<fruit>(static_cast<int>(fr) + 1);
if (fr > num_of_fruit) {
fr = num_of_fruit;
}
return temp;
}
첫 번째 operator++는 전위 증가 연산자를 위한 재정의, 두 번째 operator++는 후위 증가 연산자를 위한 재정의 함수입니다.
728x90
'Programming > C++' 카테고리의 다른 글
[C++] boost windows 비동기 처리하기 (2) | 2023.10.23 |
---|---|
[C++] Template(2) (0) | 2023.09.22 |
[C++] Template(1) (2) | 2023.09.19 |
[C++] std::forward_list, std::list (0) | 2023.07.18 |
[C++] std::array, std::vector (0) | 2023.07.12 |