2015-10-15 4 views

ответ

11

Да, это нормально. Члены инициализируются в том порядке, в котором они объявлены в классе. Обратите внимание, что порядок инициализаторах не имеет значения, так что это будет работать (но не будет хорошей практикой):

struct A{ 
    int a; 
    int b; 
    A(int c): b(a), a(c) { } 
}; 

, но это не будет работать:

struct A{ 
    int b; 
    int a; 
    A(int c) : a(c), b(a) { } 
}; 

Некоторые компиляторы могут дать вы предупреждаете, если порядок инициализации не соответствует порядку декларации.

+8

Итак, инициализируйте их в том порядке, в котором они объявлены, или вы можете быть смущены. –