Before declaration of b1
constructing int
constructing int
constructing int
constructing int
constructing int
constructing int
begin construct B
assign b->a2
constructing int
constructing int
begin construct A
construct a->x
constructing int: 1001
assign a->y
assigning int: 0 0
end construct A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 1001
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
begin ?=? A
copy constructing int: 1001
destructing int: 1001
destructing int: 1001
copy constructing int: 0
destructing int: 0
destructing int: 0
copy constructing int: 0
destructing int: 0
destructing int: 0
end ?=? A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 1001
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
destructing int: 0
destructing int: 0
destructing int: 1001
destructing int: 0
destructing int: 0
destructing int: 1001
construct b->a1
constructing int
constructing int
begin construct A
construct a->x
constructing int: 1000
assign a->y
assigning int: 0 0
end construct A
end construct B
destructing int: 0
destructing int: 0
destructing int: 1001
Before declaration of b2
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 1000
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 1001
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 0
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
End of main
constructing int
constructing int
begin construct A
construct a->x
constructing int: 999
assign a->y
assigning int: 0 0
end construct A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 999
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
begin ?=? A
copy constructing int: 999
destructing int: 999
destructing int: 999
copy constructing int: 0
destructing int: 0
destructing int: 0
copy constructing int: 0
destructing int: 0
destructing int: 0
end ?=? A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 999
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
destructing int: 0
destructing int: 0
destructing int: 999
destructing int: 0
destructing int: 0
destructing int: 999
destructing int: 0
destructing int: 0
destructing int: 1000
destructing int: 0
destructing int: 0
destructing int: 999
destructing int: 0
destructing int: 0
destructing int: 0
destructing int: 0
destructing int: 0
destructing int: 999
constructing int
constructing int
begin construct A
construct a->x
constructing int: 999
assign a->y
assigning int: 0 0
end construct A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 999
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
begin ?=? A
copy constructing int: 999
destructing int: 999
destructing int: 999
copy constructing int: 0
destructing int: 0
destructing int: 0
copy constructing int: 0
destructing int: 0
destructing int: 0
end ?=? A
copy constructing int: 0
copy constructing int: 0
begin copy construct A
copy construct this->x
copy constructing int: 999
assign this->y
copy constructing int: 0
destructing int: 0
destructing int: 0
end copy construct A
destructing int: 0
destructing int: 0
destructing int: 999
destructing int: 0
destructing int: 0
destructing int: 999
destructing int: 0
destructing int: 0
destructing int: 1000
destructing int: 0
destructing int: 0
destructing int: 999
destructing int: 0
destructing int: 0
destructing int: 0
destructing int: 0
destructing int: 0
destructing int: 999
