Понимание того, как правильно обрабатывать константы класса C ++

Рассмотрим следующее:

namespace MyNamespace{
class MyClass {
public:
   // Public area
private:
   // Private area
protected:
   // Protected area
}; /* Class */
} /* Namespace */

И учтите, что я хотел бы определить константу, специфичную для моего класса. Обычно я делаю следующее:

namespace MyNamespace{
// Constants
const int MYINT = 12;
const std::string MYSTR = std::string("Hello");
// Class definition
class MyClass {
public:
   // Public area
private:
   // Private area
protected:
   // Protected area
}; /* Class */
} /* Namespace */

Таким образом я могу получить свою переменную следующим образом (где-то в моем коде):

MyNamespace::MYINT;
MyNamespace::MYSTR;

Это хорошая практика? Учитывая, что константы можно обрабатывать несколькими способами (например, числовые константы часто обрабатываются с помощью enum ), каков наилучший подход к определению константы (связанной с классом, но может быть полезен и в другом месте? )?

Thankyou

12
задан Andry 11 April 2011 в 11:06
поделиться