![]() |
enum и константы | ||
Многие авторитетные люди советуют использовать «enum» вместо «#define» для объявления констант. Это хорошая рекомендация — «enum», в отличие от «#define», подчиняется пространству имен. Вот пример такого использования: |
0 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 | struct packet { enum { size = 1024, wait_echo = false }; // ... }; int main() { packet pck = packet(); // ... send(pck); if(packet::wait_echo) { //... } return 0; } |
Однако, существует еще более лучшая рекомендация. Вместо «enum» используйте статические константы. Их точно так же можно инициализировать внутри класса и, в отличие от «enum», они несут больше информации о типе константы. Константами точно так же можно манипулировать статическими процессами (параметризовать и специализировать шаблоны, и так далее). |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | struct packet { static std::size_t const size = 1024; static bool const wait_echo = false; // ... }; int main() { packet pck = packet(); // ... send(pck); if(packet::wait_echo) { //... } return 0; } |
|
|
Статистика |
|