Я пытаюсь сделать программу C ++, которая использует несколько классов (и несколько файлов заголовков). В одном из классов я создал тип enum с именем ‘move’, но мне нужен доступ к этому типу из всех классов. Если я оставлю объявление enum только в одном заголовочном файле, другие классы не смогут получить к нему доступ, компилятор выдаст ошибку везде, где он используется, за исключением этого класса и main. Если я объявлю это в main, ни один класс не сможет получить к нему доступ. Если я объявляю это в каждом заголовочном файле класса, я получаю ошибку компилятора для его переопределения.
Где я могу объявить тип enum, чтобы каждый заголовочный файл класса имел к нему доступ?
Где я могу объявить тип enum, чтобы каждый заголовочный файл класса имел к нему доступ?
В своем собственном заголовке. Создайте отдельный заголовочный файл для вашего enum
, а также #include
этот заголовок во всех других заголовках, которые должны использовать его. Не забудьте добавить включать охранников чтобы избежать множественных включений:
#ifndef MOVE_H
#define MOVE_H
enum move foo {
LEFT, RIGHT, UP, DOWN
};
#endif /* MOVE_H */
Примечание: если у вас есть несколько перечислений, которые логически связаны друг с другом, или enum
который принадлежит вместе с классом, вы можете поместить их в один заголовок.
Других решений пока нет …