내가 있다고 가정 클래스 A, B 및 C생성자 초기화 세트를 통해 초기화 된 변수의 파기 순서는 무엇입니까?
내가 즉, 컨테이너의 소멸자를 호출하는 경우 이제
Container::Container()
:A(10),B(20),C(30)
{
//Do something specific
}
을 다음과 같이 난 후 용기가 있다면 ~ 컨테이너() 나는 소멸자를 받고 있는지 알 역순으로 호출 됨 ~ C(), ~ B(), ~ A()
이 순서는 항상 고정 된 순서입니까? 건설 초기화를위한 소멸자의 순서에 대해 더 많은 빛을 던질 수 있습니까?
네, 지금 받으십시오. 따라서 선언/초기화 순서의 순서를 뒤집어 쓰면 파괴 순서가 엉망이 될 수 있습니다. 선언과 초기화간에 일관성을 유지하는 것이 좋습니다. 나는이 규칙에 대해 알고 있었지만 건설 초기화에도 적용된다는 것을 알지 못했다. – rajshenoy
@rajshenoy 잘, 파괴의 순서는 바뀌지 만 엉망이 아닙니다. 그것은 여전히 잘 정의되어있을 것입니다. :) –
@rajshenoy 예, 예를 들어 b와 c를 교환하면 b가 먼저 파괴됩니다. –