Zaawansowane referencje i wskaźniki 179
ZAWSZE |
NIGDY |
Zawsze przekazuj parametry przez wartość, jeśli jest to konieczne. Zawsze, jeśli jest to konieczne, zwracaj obiekty przez wartość. |
Nigdy nie zwracaj referencji do obiektów, które nie będą dłużej dostępne (np. do obiektów lokalnych funkcji). Nigdy nie twórz referencji do pustych (nuli) obiektów. |
W ciągu tej godziny nauczyłeś się, że przekazywanie obiektów przez referencje jest bardziej efektywne niż przekazywanie ich przez wartość. Przekazywanie przez referencje dodatkowo pozwala funkcji na zmianę wartości oryginalnego obiektu.
Wiesz już, że zarówno parametry jak i wartość zwracana z funkcji, mogą być zwracane przez referencje. Można to zaimplementować z wykorzystaniem wskaźników lub referencji.
Umiesz już wykorzystywać stale (const) wskaźniki i stałe referencje do bezpiecznego przekazywania wartości między funkcjami, przy jednoczesnym zachowaniu efektywności przekazywania przez referencje.
P: Dlaczego wykorzystywać wskaźniki skoro referencje są prostsze?
O: Referencje nie mogą być puste (nuli) i nie można zmieniać obiektów, do których się odnoszą (tzn. po przypisaniu referencji do obiektu, nie można przypisać do tej referencji innego obiektu). Wskaźniki są bardziej elastyczne, oczywiście kosztem komplikacji użycia.
P: Po co w ogóle zwracać coś z funkcji przez wartość?
O: Jeśli zwracany obiekt jest lokalny to musi być zwrócony przez wartość. W przeciwnym wypadku zwrócona zostanie referencja do nieistniejącego obiektu.
P: No to skoro zwracanie przez referencje jest niebezpieczne to dlaczego zawsze nie zwracać obiektów przez wartość?
O: Zwracanie przez referencje nie zawsze jest niebezpieczne natomiast zawsze zwiększa efektywność programu. Referencje oszczędzają pamięć i przyspieszają program.
ZAWSZE |
NIGDY |
Zawsze przekazuj parametry przez wartość, jeśli jest to konieczne. Zawsze, jeśli jest to konieczne, zwracaj obiekty przez wartość. |
Nigdy nie zwracaj referencji do obiektów, które nie będą dłużej dostępne (np. do obiektów lokalnych funkcji). Nigdy nie twórz referencji do pustych (nuli) obiektów. |
W ciągu tej godziny nauczyłeś się, że przekazywanie obiektów przez referencje jest bardziej efektywne niż przekazywanie ich przez wartość. Przekazywanie przez referencje dodatkowo pozwala funkcji na zmianę wartości oryginalnego obiektu.
Wiesz już, że zarówno parametry jak i wartość zwracana z funkcji, mogą być zwracane przez referencje. Można to zaimplementować z wykorzystaniem wskaźników lub referencji.
Umiesz już wykorzystywać stałe (const) wskaźniki i stale referencje do bezpiecznego przekazywania wartości między funkcjami, przy jednoczesnym zachowaniu efektywności przekazywania przez referencje.
P: Dlaczego wykorzystywać wskaźniki skoro referencje są prostsze?
O: Referencje nie mogą być puste (nuli) i nie można zmieniać obiektów, do których się odnoszą (tzn. po przypisaniu referencji do obiektu, nie można przypisać do tej referencji innego obiektu). Wskaźniki są bardziej elastyczne, oczywiście kosztem komplikacji użycia.
P: Po co w ogóle zwracać coś z funkcji przez wartość?
O: Jeśli zwracany obiekt jest lokalny to musi być zwrócony przez wartość. W przeciwnym wypadku zwrócona zostanie referencja do nieistniejącego obiektu.
P: No to skoro zwracanie przez referencje jest niebezpieczne to dlaczego zawsze nie zwracać obiektów przez wartość?
O: Zwracanie przez referencje nie zawsze jest niebezpieczne natomiast zawsze zwiększa efektywność programu. Referencje oszczędzają pamięć i przyspieszają program.