引用:
|
作者: koolplay DECLARE_DYNAMIC是MFC最基本的精髓,即建立一张消息映射表。DECLARE_DYNCREATE包含了DECLARE_DYNAMIC,但更进一步,使类的永久化成为可能。DECLARE_SERIAL包含了DECLARE_DYNCREATE,但把序列化悄悄地放进了宏里了。我可能对这些宏的理解不够准确,请大家指教。但我问的问题是涉及DECLARE_SERIAL和DECLARE_DYNCREATE关系的,我看有了DECLARE_DYNCREATE就已经可以序列化了,但是要自己添加序列化的函数,而且如果愿意的话还要重载<<>>。但用《深入浅出MFC》的话说DECLARE_SERIAL是为了将<<和>>2个运算符重载,还要让Serialize函数神不知鬼不觉地放入类声明中。 |
我需要的不是这样的答案,譬如说,如果我问你std::max是干什么的,我希望你告诉我:std::max是
代码:
template<class _Ty> inline
const _Ty& _MAX(const _Ty& _Left, const _Ty& _Right)
{ // return larger of _Left and _Right
return (_Left < _Right ? _Right : _Left);
}
而不是对我说,std::max返回两个参数中大的那个。
虽然可能后者比较好看,但是前者对于一个程序员来说,比较能够说明问题。