Reihenfolge der Auswertung der Konstruktorinitialisierungsliste

Ich habe einen Konstruktor, der einige Argumente akzeptiert. Ich hatte angenommen, dass sie in der angegebenen Reihenfolge erstellt wurden, aber in einem Fall scheint es, dass sie in umgekehrter Reihenfolge erstellt wurden, was zu einem Abbruch führte. Als ich die Argumente umkehrte, brach das Programm ab. Dies ist ein Beispiel für die Syntax, die ich verwende. In diesem Fall muss a_ vor b_ initialisiert werden. Können Sie die Reihenfolge der Bauarbeiten garantieren?

z.B.

class A
{
  public:
    A(OtherClass o, string x, int y) :
      a_(o), b_(a_, x, y) { }

    OtherClass a_;
    AnotherClass b_;
};

Antworten auf die Frage(3)

Ihre Antwort auf die Frage