Vc++ 一个 类对像B 作为另一个 类A 的成员时,如果初始化??

来源:百度知道 编辑:UC知道 时间:2024/06/09 03:48:00
VC向导生成的单文档程序.
从CPropertySheet派生出自己的类CMySheet,当在CMyView的定义里直接放入:
CMySheet m_MySheet;
然后运行时说是"没有合适的构造函数"
因为派生自动生成的两个构造函数都是需要参数的.我想知道如果给m_MySheet传递参数?

是不是一定要用指针的方式,即这样定义:
CMySheet *m_MySheet;
然后再生态对象时再传递.?
第一种方法可行吗?如何?谢谢

方法一:
可以给CMySheet类增加定义一个默认的构造函数,不带参数. 然后再定义一个形如Init(...)之类的成员函数做初始化操作. 代码就像
CMySheet m_MySheet;
m_MySheet.Init(...);

方法二:
使用构造函数初始化列表,直接在包容类的构造函数初始化列表中传参数,不过这要求你包容类的构造函数也要包含这些参数

在CMyView的构造函数初始化列表里初始化。