我有一個構造函數需要一些參數。我曾假設它們是按照列出的順序構建的,但在一個案例中,它們似乎正在被反向構建,導致中止。當我顛倒了爭論時,程序停止了中止。這是我使用的語法的一個例子。事情是,在這種情況下,a_需要在b_之前初始化。你能保證施工的順序嗎?構造函數初始化列表評估順序
例如
class A
{
public:
A(OtherClass o, string x, int y) :
a_(o), b_(a_, x, y) { }
OtherClass a_;
AnotherClass b_;
};
你說你在問構造函數的參數,但是它們在你到達構造函數之前被評估,並且它們是以一個未指定的,編譯器確定的順序來評估的。但是你真的在詢問初始化列表的順序,所以我已經爲你改變了問題標題。 – 2009-08-07 12:45:12