#define DECLARE_SERIAL(class_name) \
        DECLARE_DYNCREATE(class_name) \
        friend CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb);
这个定义的什么

解决方案 »

  1.   

    抽取运算符重载class_name ss;
    cin >> ss (这个操作被重定义了含义,内容就是你上面的函数实现)
      

  2.   

    DECLARE_SERIAL新宏名字
    DECLARE_DYNCREATE是动态创建的意思.这个有点类似Com的类工厂. 
      

  3.   

    把出现DECLARE_SERIAL(class_name)的地方替换为
    DECLARE_DYNCREATE(class_name) friend CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb);然后DECLARE_DYNCREATE(class_name)宏会继续下一层次展开
    下一层还有个DECLARE_DYNAMIC(class_name)