CRuntimmeClass 是 C++ 中 malloc 或新方法的等效概念吗
Posted
技术标签:
【中文标题】CRuntimmeClass 是 C++ 中 malloc 或新方法的等效概念吗【英文标题】:Is CRuntimmeClass the equivalent concept to malloc or new method in C++ 【发布时间】:2021-02-18 17:43:55 【问题描述】:我对@987654322@ 的概念感到困惑,所以这是我的理解:
1 在 CPP 中,我们有 malloc 或 new,以便能够在堆上使用内存,并且我们可以在程序运行时“动态”更改内存的大小。
2 在 MFC 中有一个 CRuntimeClass (https://docs.microsoft.com/en-us/cpp/mfc/reference/cruntimeclass-structure?view=msvc-160#createobject),在使用 IMPLEMENT_DYNAMIC
之后,我不是很熟悉,我想这类似于 new/malloc 函数
【问题讨论】:
【参考方案1】:CRuntimeClass
是 MFC 对类型的元数据进行编码以允许它在类型仅作为字符串可用时创建对象的方式。在从 CDocTemplate
构造文档实例、将视图与文档关联或序列化和反序列化结构化数据时,这是必需的。
为了实现这一点,MFC 维护了一个应用程序全局内存注册表,其中注册了相应的类型。可以在给定类型名称的情况下查询此注册表以获取 CRuntimeClass
实现。
CreateObject
不等同于new
。它使用new
来构造可用作字符串表示的类型的实例。它可以被认为是一种工厂方法。
【讨论】:
以上是关于CRuntimmeClass 是 C++ 中 malloc 或新方法的等效概念吗的主要内容,如果未能解决你的问题,请参考以下文章