Using a reference is harder than a pointer, because you have to initialize the reference in the constructor's initialization list. (And it also makes copying harder.)

I'd just use a pointer and set it to null if you don't have an address to assign to it when you construct the object.