成员初始化者的顺序

msc*_*msc 5 c++ class member-initialization

下面的代码给出正确的输出,如果我声明变量ij,喜欢int i, j;

class A 
{
  int i, j;

public:
    A(int val) : i(val), j(i + 1)
    {
        cout<<i<<endl<<j<<endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

但是,如果我声明变量ij一样int j, i;.然后j打印垃圾值.

class A 
{
  int j, i;

public:
    A(int val) : i(val), j(i + 1)
    {
        cout<<i<<endl<<j<<endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

那么,它取决于变量声明的顺序吗?