• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Переменная типа Enum в разных модулях

  • Автор темы Andrey97
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Andrey97

C++ Builder 6.

В модуле 1 объявлена переменная:
C++:
enum {a, b, c} State;

В модуле 2 при попытке присвоить переменной значение
C++:
State=a;
выдается ошибка
[C++ Error] Unit1.cpp(107): E2451 Undefined symbol 'a'.
Почему то компилятор переменную "видит" но "не видит" строковую константу внутри объявленной переменной.
 
D

DarkKnight

C++ Builder 6.

В модуле 1 объявлена переменная:
enum {a, b, c} State;

В модуле 2 при попытке присвоить переменной значение
State=a;
выдается ошибка
[C++ Error] Unit1.cpp(107): E2451 Undefined symbol 'a'.
Почему то компилятор переменную "видит" но "не видит" строковую константу внутри объявленной переменной.

Я точно не помню,но помойму перечисляемые константы доступны только в определнном пространстве имен или в текущем модуле

так что даже ни какой extern не поможет, из чего следует, что смело перемещай его в заголовочный файл отдельный и подгружай #include ом
 
D

DarkKnight

А лучше при описание используй пространство имен, что бы не напутать с объявленным идентификаторамы переменных и констант

C++:
//Заголовочный файл
namespace MyStatus
{
enum {a, b, c} State;

}
//----------------------------------

#include "Наш заголовочный файл"

{
int State;
State = MyStatus::c;


}
 
A

Andrey97

А лучше при описание используй пространство имен, что бы не напутать с объявленным идентификаторамы переменных и констант
Обошлось без пространства имен.
Вообще переменные enum входят в состав структуры. Я в заголовочном файле объявил теги enum, затем объявил тип структуры с содержанием этих типов enum. При подключении такого файла другой модуль не ругается на имена значений enum.
Все равно всем спасибо!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!