GnodePtrBagManip::GnodePtrBagManip(GnodePtrBag* bag)
{
d_addrLink_p = &(bag->d_root_p);
L = *d_addrLink_p;
}
The calling code here is GnodePtrBagManip nodeMan(&d_nodes) where &d_nodes is the address of the GnodePtrBag variable d_nodes of the Graph object. The line
d_addrLink_p = &(bag->d_root_p);
sets d_addrLink_p to be the address of the memory location storing the address of the head cell (this is d_root_p). Then we use the line
L = *d_addrLink_p;
to set the local variable L to be the address of this head cell.