Consider the following example. When bar is constructed, it gives it\'s base type (foo) constructor the address of my_member.y where <
bar
foo
my_member.y
Yes you are allowed to pass &my_member.y to foo's constructor, and even copy the pointer - which you do with x(p_x).
&my_member.y
x(p_x)
The behaviour on dereferencing that pointer though in foo's constructor is undefined. (But you don't do that.)