繁体   English   中英

c++ 中的初始化列表

[英]initialisation list in c++

我几乎不知道 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 class 没有单个参数化构造函数。

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

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

m_pMsg不是Rs232Msg class。 相反,它是一个指向Rs232Msg class 的指针。 被复制的只是一个指向该 class 的现有实例的指针,因此这里没有调用构造函数。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM