我有一个代码(简化版):
#define MESSAGE_SIZE_MAX 1024
#defined MESSAGE_COUNT_MAX 20
class MyClass {
public:
.. some stuff
private:
unsigned char m_messageStorage[MESSAGE_COUNT_MAX*MESSAGE_SIZE_MAX];
};
我不喜欢MyCalss的所有用户都可以看到的定义。
我怎样才能用C ++风格来做?
由于 迪马
答案 0 :(得分:6)
为什么不简单地使用常量?
const int message_size_max = 1024;
请注意,与C不同,C ++使得全局范围内的常量变量默认具有静态链接。
上面的常量变量是一个常量表达式,因此可用于指定数组大小。
char message[message_size_max];
答案 1 :(得分:5)
将这些内容纳入class
定义的技巧是,
// public:
enum {MESSAGE_SIZE_MAX=1024, MESSAGE_COUNT_MAX=20};
我从不喜欢#defines
像常量一样使用
使用enum
始终是一种很好的做法。