Тип enum необходим для нескольких заголовочных файлов классов

Я пытаюсь сделать программу C ++, которая использует несколько классов (и несколько файлов заголовков). В одном из классов я создал тип enum с именем ‘move’, но мне нужен доступ к этому типу из всех классов. Если я оставлю объявление enum только в одном заголовочном файле, другие классы не смогут получить к нему доступ, компилятор выдаст ошибку везде, где он используется, за исключением этого класса и main. Если я объявлю это в main, ни один класс не сможет получить к нему доступ. Если я объявляю это в каждом заголовочном файле класса, я получаю ошибку компилятора для его переопределения.

Где я могу объявить тип enum, чтобы каждый заголовочный файл класса имел к нему доступ?

1

Решение

Где я могу объявить тип enum, чтобы каждый заголовочный файл класса имел к нему доступ?

В своем собственном заголовке. Создайте отдельный заголовочный файл для вашего enum, а также #include этот заголовок во всех других заголовках, которые должны использовать его. Не забудьте добавить включать охранников чтобы избежать множественных включений:

#ifndef MOVE_H
#define MOVE_H

enum move foo {
LEFT, RIGHT, UP, DOWN
};

#endif /* MOVE_H */

Примечание: если у вас есть несколько перечислений, которые логически связаны друг с другом, или enum который принадлежит вместе с классом, вы можете поместить их в один заголовок.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]