这里有两种方法来声明构造函数。
CAssignHistoryDlg::CAssignHistoryDlg(CWnd* pParent /*=NULL*/)
: CResizingDialog(_T("SMHistory"), CAssignHistoryDlg::IDD, pParent, false)
, m_pCombo(nullptr)
, m_pStrText(nullptr)
, m_pGrid(nullptr)
, m_bBuildTreeMode(false)
, m_bFirstSelChangeEvent(false)
, m_iLookIn(LOOKIN_THEME_AND_METHOD) // AJT v10.7.0
, m_bFullHistoryMode(false)
, m_pHistoryOriginal(nullptr)
{
}
CAssignHistoryDlg::CAssignHistoryDlg(CWnd* pParent /*=NULL*/)
: m_pCombo(nullptr)
, m_pStrText(nullptr)
, m_pGrid(nullptr)
, m_bBuildTreeMode(false)
, m_bFirstSelChangeEvent(false)
, m_iLookIn(LOOKIN_THEME_AND_METHOD) // AJT v10.7.0
, m_bFullHistoryMode(false)
, m_pHistoryOriginal(nullptr)
, CResizingDialog(_T("SMHistory"), CAssignHistoryDlg::IDD, pParent, false)
{
}
唯一的区别是基本构造函数调用的位置。是否有规定应指定哪种方式的规则?有关系吗?
我不是在这里要求“意见”。如果可能的话,只是事实答复。
答案 0 :(得分:1)
没有关系,但是基类构造函数总是在任何成员类初始化完成之前执行。
我将基类构造函数始终放在列表的顶部。因为从我的角度来看,它更具可读性。
即使类成员初始化也不按照构造函数中编写的顺序进行。它们按照类中的声明顺序进行初始化。