Сделайте Вас, действительно нуждаются в List< T> или будет IList< T> делают? Поскольку строка [] уже реализует последнего... просто другая причина, почему это стоит запрограммировать к интерфейсам, где Вы можете. (Могло случиться так, что в этом случае Вы действительно не можете по общему признанию.)
Это зависит от порядка объявления переменных-членов в классе. Итак, a_
будет первым, затем b_
будет вторым в вашем примере.
Процитируем стандарт для пояснения:
12.6.2.5
Инициализация должна происходить в следующем порядке:
...
- Затем нестатические элементы данных должны инициализироваться в том порядке, в котором они были объявлены в определении класса (опять же независимо от порядка инициализаторов памяти).
...