Wpis z mikrobloga

@Metoksyfenidyna9: W zależności od tego o co dokładnie chcesz zapytać:

1. Żadna. Referencja jest implementowana wskaźnikiem.
2. Składniowa. Referencja jest dość "transparentna" w użyciu (ampersand w nazwie typu i koniec), wskaźnik dość hałaśliwy (tu gwiazdka, tam ampersand, przy obiektach strzałeczka itp.).
3. Wskaźnik możesz przepinać i nullować, referencji nie możesz przepiąć i nie istnieje odpowiednik null dla referencji. Referencja zachowuje się trochę jak * const.
@Metoksyfenidyna9: "Teoretycznie" to właściwe określenie. W pewnym momencie będziesz miał np. taki scenariusz, że potrzebujesz w obiekcie A ustawić odniesienie do obiektu B, tylko że nie możesz tego zrobić w momencie tworzenia A (bo np. B jeszcze nie istnieje). Wtedy referencja nie styknie, bo ponieważ się zachowuje jak * const, musi być ustawiona przed wywołaniem konstruktora obiektu A.

Lub w skrócie: to co @Kaczus2B napisał. :D
@Metoksyfenidyna9: referencja nie moze byc dangling, lub w szczegolnosci nie moze wskazywac na NULL. W zalozeniu referencja to taki transparentny wskaznik, ktory wskazuje na konkretny adres, ale w uzyciu jest traktowany tak jak normalna zmienna.
@Metoksyfenidyna9: przede wszystkim wskaźnikiem możesz mazać po pamięci a referencją nie, więc referencja jest bezpieczniejsza (najlepiej referencja const). Czystych wskaźników nie powinno się w nowoczesnym cpp używać, jak już to smart pointerów