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类没有一个单独的参数化构造函数。
但是它有一个接受4个参数的构造函数。
我无法确定它是如何被调用的。但是代码运行时没有任何错误。
m_pMsg
不是Rs232Msg
类。相反,它是指向Rs232Msg
类的指针。所有被复制的都是指向该类的现有实例的指针,因此这里不会调用构造函数。
m_pMsg
和pMsg
是指向Rs232Msg
的指针,因此不会调用Rs232Msg
构造函数;您只是存储了一个指向预先存在的实例的指针。
相关文章:
- 复制列表初始化的隐式转换的等级是多少
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- C++11 中的混合列表初始化
- 我可以列表初始化 std::vector 并完美转发元素吗?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++20 从括号中的值列表初始化聚合,不支持内部数组
- 如何在向量列表初始化时避免对象复制以及如何延长临时的生存期
- 默认参数和空列表初始化
- 如何在列表初始化中放置额外的语句?
- C++列表初始化允许多个用户定义的转换
- 列表初始化是否将原子初始化为零
- 使用可变模板列表初始化数组,并放置new
- 使用整数初始化列表初始化长双精度的向量
- 直接列表初始化的自动规则
- 使用初始化列表初始化unique_ptr的容器,继续
- 如何修复"非聚合无法使用初始值设定项列表初始化" <map>
- 直接列表初始化和复制列表初始化之间的差异
- 为什么我可以在不使用赋值运算符的情况下使用列表初始化普通数组
- C++ - 使用类中的初始值设定项列表初始化动态集