网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
探察RUNTIME_CLASS之类的秘密
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
(class_name)
该宏引入了和DECLARE_DYNCREATE引入的四个成员差不多的成员。唯一的区别
是该宏引入的静态成员class##class_name前面没有const修饰符。

8。DECLARE_SERIAL(class_name)
该宏引入了和_DECLARE_DYNCREATE所引入的一样的四个成员,另外它还多了
这么一句:
AFX_API friend CArchive& AFXAPI operator>>(CArchive& ar, class_name* &
pOb);
原来是把重载操作符operator>>的函数当作该类的友元。于是在操作符函数oper
ator>>中就可以访问该类的成员了。

9。IMPLEMENT_SERIAL(class_name, base_class_name, wSchema)
该宏初始化了成员变量:
CRuntimeClass class_name::class##class_name=
{
#class_name,
sizeof(class class_name),
wSchema,
class_name::CreateObject),
RUNTIME_CLASS(base_class_name),
NULL
};//在这里,class##class_name前面是没有const修饰符的。

该宏还实现了下列函数:
CObject* PASCAL class_name::CreateObject()
{
return new class_name;
}

CRuntimeClass* class_name::GetRuntimeClass() const
{
return RUNTIME_CLASS(class_name);
}

CArchive& AFXAPI operator>>
(CArchive& ar, class_name* &pOb)
{
pOb=(class_name*)ar.ReadObject(RUNTIME_CLASS(class_name));
return ar;
}

该宏还声明了一个函数原型:
AFX_CLASSINIT _init_##class_name(RUNTIME_CLASS(class_name)); 

  • 上一篇资讯: VC++中STL的使用
  • 下一篇资讯: 在VC中显示JPEG和GIF图像
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号