Сам объект находится в памяти, и все переменные хранят в себе ссылку на объект. Тут скорее наоборот в java проще, потому что нет возможности передачи самих объектов, только ссылки.
А в C++ я могу создать переменную, которая ссылается на объект, могу создать переменную, которая ссылается на область памяти, где хранится объект, могу создать ссылку на переменную, которая хранит ссылку на объект, который хранится в памяти. И память я должен выделять и чистить сам, поэтому в С++ возможно передать ссылку на объект в памяти, который уже не существует, и при использовании вы "выстрелите себе в ногу" с segmentation fault. Как-то так.