Я пытаюсь определить константу BUFFER_LENGTH для моего класса для данного варианта использования.
//1. Using preprocessor declaration
//#define BUFFER_LENGTH 12
//2.Global constant
//const int BUFFER_LENGTH = 12;
class MyRequest
{
public:
//3. Define an in-class constant
//static const int BUFFER_LENGTH = 12;
//4. Declare an enum constant
enum
{
BUFFER_LENGTH = 12
};
MyRequest()
{
strcpy(mBuffer, "TestString");
printf("Buffer: %s, BUFFER_LENGTH = %d",mBuffer, BUFFER_LENGTH);
}
private:
char mBuffer[BUFFER_LENGTH];
};
Я только что перечислил различные способы определения константы для класса.
1. Using Preprocessor constant
2. Using Global constant
3. Using in-class constant
4. using an enum.
Какой из них является лучшим подходом к определению констант для данного варианта использования? Я предпочитаю использовать константу перечисления по сравнению с другими подходами. Есть ли другой лучший подход, который я пропустил.
Спасибо,