下式给出:
class A {
std::list<int> m_list;
std::list<int>::iterator m_iterator;
public:
explicit A() : m_iterator(m_list.begin()) { }
};
我确保在评估ctor初始化列表之前构建 m_list
,以便begin()
正确取消引用其开头/结尾?或者我应该更好地在ctor体内使用m_iterator
作业吗?
答案 0 :(得分:5)
会员按照声明顺序构建。
所以是 m_list
将在调用m_list.begin()
之前构建。