質問させてください。

C++なんですが、たとえば下のようなクラスを定義します

class test{
private:
int a:
int b;
public:
test(void){
a = 0;
b = 0;
}
test(int c,int d){
a = c;
b = d;
}
};

で、宣言の際に
test myclass(1,2);
としてconstructorに値が流れた場合、メモリはどのように確保されていくのですか?
constructorが呼ばれた段階でcとdが作られるのはわかるのですが、aとbが生成される
タイミングがわかりません。どなたか教えてください