我几乎不懂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个参数的构造函数。
我无法确定如何调用它。但代码运行时没有任何错误。
答案 0 :(得分:6)
m_pMsg
不是Rs232Msg
类。相反,它是{em>指针到Rs232Msg
类。所有被复制的都是指向该类已经存在的实例的指针,因此这里不会调用构造函数。
答案 1 :(得分:1)
m_pMsg
和pMsg
是指向Rs232Msg
的指针,因此未调用Rs232Msg
构造函数;你只是存储一个指向预先存在的实例的指针。