Пусть говорят, что я decleared это в MyTools.h
Как определить «глобальную» структуру?
#ifndef _MYTOOLS_
#define _MYTOOLS_
typedef struct {
// const
double LN20;
double LN40;
// methods
double NoteToFrequency(int noteNumber);
} Tool;
extern const Tool tool;
#endif // !_MYTOOLS_
Для каждой единицы компиляции, есть только глобальная/Const/уникальный экземпляр Tool
. Именно то, что я хочу.
Но теперь: как я могу его определить? В .h
я только объявил это. Как я могу определить его в .cpp
? Пробовал что-то вроде:
tool.LN20 = 1.34;
Но, конечно, это не работает. И определение метода?
related/dupe: http://stackoverflow.com/questions/20716091/global-const-object-shared-between-compilation-units – NathanOliver
'const Инструмент инструмента {1.34, 3.14};'? Рабочий пример: [здесь] (https://ideone.com/xiiJ2e). –
Те члены, которые вы назвали '// const', * not * на самом деле постоянны, кстати. –