【问题标题】:Is CRuntimmeClass the equivalent concept to malloc or new method in C++CRuntimmeClass 是 C++ 中 malloc 或新方法的等效概念吗
【发布时间】:2021-02-18 17:43:55
【问题描述】:

我对@9​​87654322@ 的概念感到困惑,所以这是我的理解: 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 函数

【问题讨论】:

    标签: mfc heap-memory dynamic-memory-allocation


    【解决方案1】:

    CRuntimeClass 是 MFC 对类型的元数据进行编码以允许它在类型仅作为字符串可用时创建对象的方式。在从 CDocTemplate 构造文档实例、将视图与文档关联或序列化和反序列化结构化数据时,这是必需的。

    为了实现这一点,MFC 维护了一个应用程序全局内存注册表,其中注册了相应的类型。可以在给定类型名称的情况下查询此注册表以获取 CRuntimeClass 实现。

    CreateObject 不等同于new。它使用new 来构造可用作字符串表示的类型的实例。它可以被认为是一种工厂方法。

    【讨论】:

      猜你喜欢
      • 2016-09-15
      • 2012-12-07
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      相关资源
      最近更新 更多