关于<深入浅出mfc>的static。
本书我喜欢第三章,但我今天发现了一个问题:
#define DECLARE_DYNAMIC(class_name)\
public:\
static CRuntimeClass class##class_name;\
virtual CRuntimeClass* GetRuntimeClass() const;
上面是类别型录网的定义,请大家注意其中的static,应该是表示class##class_name是个静态的。请再看下面的代码。
#define _IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,wSchema,pfnNew)\
static char _lpsz##class_name[]=#class_name;
CRuntimeClass class_name::Class##class_name={\
_lpsz##class_name,....}
我想问的是为什么_lpsz##class_name[]还要设成static型?我知道static意味着永久存在的含义。但既然在DECLARE_DYNAMIC()中已经将CRuntimeClass()设成静态的了,那CRuntimeClass()内的成员还要设成static的吗?有这个必要吗?不可理解。。。