我有一个构造函数需要一些参数。我曾假设它们是按照列出的顺序构建的,但在一个案例中,它们似乎正在被反向构建,导致中止。当我颠倒了争论时,程序停止了中止。这是我使用的语法的一个例子。事情是,在这种情况下,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