Страница 1 из 2

Каким образом можно объявить глобальную константу?

Добавлено: 01 фев 2010, 14:30
dmitry1208197320
В функции обїявляю константу как:

const int count = 10;

Поскажите, можно ли объявить таким же образом глобальную константу для текущего модуля. Если можно, то в каком разделе?

Re: Каким образом можно обїявить глобальную константу?

Добавлено: 01 фев 2010, 15:42
IceFlame
Просто объявить ее перед всеми функциями.

Re: Каким образом можно обїявить глобальную константу?

Добавлено: 01 фев 2010, 16:00
Decoder
Смотря что понимать под словом "модуль"? Если отдельно взятый СРР-файл, то сделай как написал IceFlame.
Если же это программный модуль (т.е. речь идёт о целом проекте), то делается так:
- В одном из заголовочных файлов эта константа (без инициализации) объявляется с модификатором extern.
Потом этот заголовочный файл включается во все СРР-файлы, которые обращаются к данной константе.
- В одном из СРР-файлов эта константа инициализируется конкретным значением.

Re: Каким образом можно обїявить глобальную константу?

Добавлено: 01 фев 2010, 16:19
dmitry1208197320
Объявляю перед всеми функциями:

const int count = 5;

В результате компилятор выдаёт ошибку:

c:\ddd\c++\seren\serenada\serenada\MainForm.h(318) : error C3845: 'Serenada::MainForm::LengthHead': only static data members

Re: Каким образом можно обїявить глобальную константу?

Добавлено: 01 фев 2010, 17:13
Decoder
Объявляю перед всеми функциями:

const int count = 5;

В результате компилятор выдаёт ошибку:

c:\ddd\c++\seren\serenada\serenada\MainForm.h(318) : error C3845: 'Serenada::MainForm::LengthHead': only static data members
Данную константу нужно объявлять и инициализировать не в MainForm.h, а в MainForm.cpp

Re: Каким образом можно обїявить глобальную константу?

Добавлено: 01 фев 2010, 18:04
dmitry1208197320
У меня проект создан под .NET в Visual Studio 2008 и в нём нет модуля MainForm.cpp.

Re: Каким образом можно обїявить глобальную константу?

Добавлено: 04 фев 2010, 10:17
dmitry1208197320
Всё-таки кто-нибудь может подсказать, где корректно объявлять глобальную константу?

Re: Каким образом можно объявить глобальную константу?

Добавлено: 04 фев 2010, 11:51
Romeo
Сказал бы с самого начала, что это .NET. В технологии .NET нету глобальных переменных. Объявляй свою статическую константу в скопе любого класса.

Re: Каким образом можно объявить глобальную константу?

Добавлено: 05 фев 2010, 13:28
dmitry1208197320
Скажите, а статическая константа, это объявление типа: static int temp = 5 ?

Re: Каким образом можно объявить глобальную константу?

Добавлено: 05 фев 2010, 15:04
Romeo

Код: Выделить всё

static const int temp = 5;