什么时候用MFC的动态生成,什么时候用new?

yehzh 2001-02-27 08:39:00
看了侯大师的《深入浅出MFC》第77页关于动态生成部分,
char classname[30]=getclassname();
cobject* obj=new classname;//这行行不通
我的理解是:当你不知道类名为何物时,不能用new来产生一个对象,因此需将此类改造成具有动态生成能力的类,才可用creatobject来产生一个对象。
但我的疑问是:当我知道我要创建的对象的类名时,直接new不就构造了对象。
例如《深入浅出MFC》第344页
cdocument* cmultidoctemplate::opendocument(...,...)
{
...
cdocument* pdocument=creatnewdocument();
...
}
我知道要创建document对象,那就直接
cdocument* pdocument=new cdocument();
不行么?
...全文
166 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeanBorland 2001-02-28
  • 打赏
  • 举报
回复
Hope for answer
miky 2001-02-28
  • 打赏
  • 举报
回复
好问题,我也不懂。我能不能帮你给点分?怎样给?
yehzh 2001-02-28
  • 打赏
  • 举报
回复
是么?让我想想...
horris 2001-02-27
  • 打赏
  • 举报
回复
问题在于,你在文档模板里不能决定动态生成哪个文档类,只能按最普通的,生成CDocument.RUNTIME_CLASS和CreateNewDocument保证了生成指定的(你从CDocument派生的)文档类
celxta 2001-02-27
  • 打赏
  • 举报
回复
用RUNCLASS

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧