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