今天折腾一下“implement_dyncreate”这个东西,感觉有点意思,就来分享一下我的实践过程。
一开始看到这个名字“implement_dyncreate”,我是懵的,这都啥跟啥?后来查一下才知道,原来这个东西是用来动态创建对象的,大概就是能在程序跑起来的时候,根据需要创建某个类的对象。
然后我就想,这玩意儿到底咋用?网上说要跟“DECLARE_DYNCREATE”一起用,我照着做。先是在我的类声明的地方加DECLARE_DYNCREATE(MyClass)
,这一步还挺简单的,就是在类名外面套个壳。
就是要把“implement_dyncreate”加到类的实现文件里。这步也简单,就是把IMPLEMENT_DYNCREATE(MyClass, MyBaseClass)
这行代码复制粘贴到.cpp文件里。这里要注意,MyClass是你的类名,MyBaseClass是你的类的父类,别搞错。
做完这两步,我心里还有点忐忑,这就能行?我试着编译一下,居然没报错!看来这两步操作还挺靠谱的。
光看不练假把式,我得验证一下这玩意儿到底有没有用。我找一段代码,用到RUNTIME_CLASS
和IsKindOf
这两个东西,据说这两个东西可以用来判断对象的类型。我把代码跑起来,调试一下,果然能正确识别出我创建的对象的类型!
整个过程总结下来就是:
- 在头文件里,类声明的地方加上
DECLARE_DYNCREATE(你的类名)
。 - 在.cpp文件里,加上
IMPLEMENT_DYNCREATE(你的类名, 你的父类名)
。
就这两步,简单?反正我是觉得挺简单的。以后再遇到需要动态创建对象的情况,我就知道该怎么做。
我再啰嗦一句,如果你跟我一样,也是第一次接触这个东西,建议你多看看网上的资料,多动手试试,这样才能真正理解它的用法。毕竟实践出真知嘛
免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。