我有一个代码(简化版):
#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];
};
Run Code Online (Sandbox Code Playgroud)
我不喜欢定义,它们对MyCalss的所有用户都是可见的.
我怎么能用C++风格呢?
谢谢迪马
你为什么不简单地使用常数?
const int message_size_max = 1024;
Run Code Online (Sandbox Code Playgroud)
请注意,与C不同,C++使得全局范围内的常量变量默认具有静态链接.
上面的常量变量是常量表达式,因此可用于指定数组大小.
char message[message_size_max];
Run Code Online (Sandbox Code Playgroud)
将这些事情纳入class定义的诀窍是,
// public:
enum {MESSAGE_SIZE_MAX=1024, MESSAGE_COUNT_MAX=20};
Run Code Online (Sandbox Code Playgroud)
我从不喜欢#defines像常量一样使用.
它总是一个很好的使用方法enum.