初始化列表之前的对象初始化

use*_*129 1 c++ c++11

给定:

class A {
    std::list<int> m_list;
    std::list<int>::iterator m_iterator;
public:
    explicit A() : m_iterator(m_list.begin()) { }
};
Run Code Online (Sandbox Code Playgroud)

我保证m_list评估ctor初始化列表之前构建,以便a begin()正确地取消引用它的开头/结尾吗?或者我应该更好地使用m_iteratorctor体内的任务?

Hco*_*org 5

成员按声明顺序构建.

所以肯定 m_list会在m_list.begin()被调用之前构建.