Если у вас есть класс, который имеет несколько именованных констант, как лучше всего хранить константы:
Вариант 1: пространство имен в заголовке класса
Так что в заголовке моего класса я буду иметь:
class myClass
{
...
...
};
namespace NamedConstants
{
const string Bucket = "Bucket";
}
Варианты 2 константы
class MyClass { // this goes in the class
private: // header file
static const string Bucket;
...
};
... и в файле реализации класса:
const string MyClass::Bucket = "Bucket";
Я на самом деле предпочитаю вариант 1, считая его более чистым: имя и значение переменной отображаются вместе. Кроме того, если вы дадите пространству имен хорошее имя, это может сделать код более читабельным при использовании констант:
TrafficLight::Green
Кто-нибудь видит какие-либо проблемы с этим методом по сравнению с вариантом 2?