Брутально и бессердечно о программировании и проектировании
ГлавнаяФорумАртПаттерныАнтипаттерныТест-драйвВопрос-ответКнигорецензииСправочная

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;
}
 
Заметка к заметке

Глубокоуважаемый автором господин Вандевурд в своей книге «Шаблоны C++» рекомендует использовать все-таки первый способ. При всем своем уважении к господину Вандевурду, автор продолжает считать, что плюсы от честной и чистой типизации перевешивают все минусы, связанные с проблемами инстанцирования.

Оглавление
Статистика
© 2007—2010 Inside C++ Коммерческие услугиКонтактная информация

магазин развивающих игрушек. . проект деревянного дома. . осетинские пироги москва. . скачать музыку бесплатно mp3. . проститутки москвы. . из рук в руки уфа. . полиуретановый лак. . разработка сайтов описание отзывы москва и область. . деревянные дома из клееного бруса москва. . казино. . книга в подарок найти свежие статьи и подарочные книги. . проекты деревянных домов.