인수를 취하는 생성자가 있습니다. 나는 그것들이 나열된 순서대로 구성되었다고 가정했지만, 어떤 경우에는 반대로 구성되어 중단을 초래하는 것으로 보입니다. 인수를 되 돌리면 프로그램 중단이 중지되었습니다. 이것은 내가 사용하는 구문의 예입니다. 문제는이 경우 a_를 b_ 전에 초기화해야한다는 것입니다. 건설 순서를 보장 할 수 있습니까?
예 :
class A
{
public:
A(OtherClass o, string x, int y) :
a_(o), b_(a_, x, y) { }
OtherClass a_;
AnotherClass b_;
};
6
생성자 인수에 대해 질문하고 있지만 생성자에 도달하기 전에 평가되며 지정되지 않은 컴파일러 결정 순서로 평가됩니다. 그러나 초기화 목록의 순서에 대해 정말로 묻기 때문에 질문 제목을 변경했습니다.
—
Rob Kennedy