将参数传递给IMPLEMENT_DYNCREATE

时间:2019-04-09 06:54:30

标签: c++ mfc

MFC IMPLEMENT_DYNCREATE以下面的方式创建对象

CObject* PASCAL class_name::CreateObject() \
        { return new class_name; } 

哪个调用默认构造函数。我想用自定义参数调用参数化构造函数。

是否可以将参数传递给IMPLEMENT_DYNCREATE宏? IMPLEMENT_DYNCREATE的调用方式,有人可以解释吗?

1 个答案:

答案 0 :(得分:0)

  

有什么方法可以将参数传递给IMPLEMENT_DYNCREATE宏?

不。该宏扩展为MFC实现动态对象创建所需的功能。例如,在动态构造视图或从磁盘反序列化对象时使用此方法。宏本身从未被调用。详细信息在Run-Time Object Model Services中概述。

此限制并不表示不允许您提供用户定义的构造函数。您仍然可以这样做,并在代码中调用这些构造函数,尽管我怀疑这样做是否会使代码易于维护。除了默认的构造函数,该框架不会调用任何东西。


请注意,默认构造函数定义为构造函数,可以在不传递任何参数的情况下调用它。具有一个或多个参数(都为其分配了默认参数)的构造函数仍被视为默认构造函数。