#cpp #c
Каким образом можно описать параметр функции? Допустим есть функция: void stick(int a, inb &b, /* ? */ direct) Собственно вместе с этим direct я передаю один из двух параметров - right и left. И в теле функции должна происходить проверка, на указанный параметр.
Ответы
Ответ 1
Попробуйте так: enum Direction { Left, Right }; void stick(int a, inb &b, Direction d); { switch (d) { case Left: break; case Right: break; } // ... } Заметьте, что enum в версиях C++ до C++11 даёт достаточно слабую типизацию. Например, такой код компилируется: enum Direction { Left, Right }; enum Direction2 { North = 5, South = 7 }; void f(Direction d) { switch (d) { case North: break; case South: break; } // ... } Для компилятора все enum'ы — просто числовые константы. Но начиная с C++11, лучше использовать строго типизированный enum: enum class Direction { //^^^^^ Left, Right }; enum WrongDirection { Left = 1, Right = 0 }; void f(Direction d) { switch (d) { case Direction::Left: // а не WrongDirection::Left break; case Direction::Right: break; } // ... } Здесь компилятор не даст вам случайно использовать неправильный тип.
Комментариев нет:
Отправить комментарий