看一看createnewdocument()
|
cdocument* cdoctemplate::createnewdocument() { // default implementation constructs one from cruntimeclass if (m_pdocclass == null) // 错误提示啦 // cruntimeclass* m_pdocclass -> createobject 实例化文档类。 // 在此例子中既是 cmditestdoc cdocument* pdocument = (cdocument*)m_pdocclass->createobject(); adddocument(pdocument); // 添加到模板里的文档列表,multidoctemplate 保存此一文档 return pdocument; } |
cmditestdoc有如下的定义,仅能从cruntimeclass里面创建的。
|
class cmditestdoc : public cdocument { protected: // 仅从序列化创建 cmditestdoc(); // 被保护的构造函数 declare_dyncreate(cmditestdoc) // 支持从 cruntimeclass 信息中创建。 |