c++中的初始化列表

initialisation list in c++

本文关键字:列表 初始化 c++      更新时间:2023-10-16

我几乎不懂c++。不是专家。

我正在查看一个已经存在的代码。我无法理解以下代码。

typedef enum
{
    eEvent_MsgOk,            
    eEvent_InvalidMsgId,    
    eEvent_Failure,          
} eEventType;
class Rs232Event
{
public:
    Rs232Msg*     m_pMsg;    
    eEventType     m_eEvent;   
}
Rs232Event::Rs232Event(eEventType eEvent,Rs232Msg* pMsg)
 :  m_pMsg(pMsg), m_eEvent(eEvent)
{
    // not implemented on purpose
}

在这里,使用初始化列表,他们正在初始化值。

但是Rs232Msg类没有一个单独的参数化构造函数。

但是它有一个接受4个参数的构造函数。

我无法确定它是如何被调用的。但是代码运行时没有任何错误。

m_pMsg不是Rs232Msg类。相反,它是指向Rs232Msg类的指针。所有被复制的都是指向该类的现有实例的指针,因此这里不会调用构造函数。

m_pMsgpMsg是指向Rs232Msg的指针,因此不会调用Rs232Msg构造函数;您只是存储了一个指向预先存在的实例的指针。