C++ глобальный enum [закрыт]

193
23 декабря 2018, 11:30

Как создать enum который будет доступен везде? Я вот например создал enum и с ним все нормально работает в классах где создаю а вот в класе наследнике если сказать, что метод хочет что-небуть типа enum'a, получаю ошибку что enum is not type name?

Answer 1

Объявить в .h файле enum.

myenum.h:

#ifndef MYENUM_H
#define MYENUM_H
enum myenum {ONE, TWO};
#endif

#ifndef и #define позволяет подключать enum где угодно, чтоб конфликтов не было.

Где надо, подключать:

#include "myenum.h"
Answer 2

Очень жаль, что вы положились на наши телепатические способности и не привели код. Поэтому приходится просто гадать, что же вы не так делаете.

Как видите, вот код с наследованием, в котором enum, объявленный в базовом классе, виден наследнику:

class Base
{
public:
    enum Enum { ONE = 1, TWO, THREE };
public:
    void f(Enum e) {}
};
class Derived: public Base
{
public:
    void g(Enum e) {}
};

int main(int argc, const char * argv[])
{
    Derived d;
    d.g(Base::ONE);
}

Если это не натолкнет вас на правильные выводы, пожалуйста, исправьте свой вопрос - как семантически, так и синтаксически, кстати говоря :) При невнятном ТЗ результат один - ХЗ...

READ ALSO
Парсинг и изменение даты в кастомном формате

Парсинг и изменение даты в кастомном формате

Есть строка с датой и времнем в определенном формате

164
Пример Spring Boot programmatic transaction, spring data jpa

Пример Spring Boot programmatic transaction, spring data jpa

Ищу пример реализации программного управления транзакциями в Spring Boot и Spring Data JPAВезде только для spring framework

168
Неясный стек исключений в приложении javaFx

Неясный стек исключений в приложении javaFx

Коллеги, добрый день! Вот такой стек исключения выдается при запуске собранного мавеном джарника моего приложения:

169
Задача с базой данных (про игру)

Задача с базой данных (про игру)

Попытка объяснить технически:

166