Obiekty strukturalne jako wartości funkcji
Obiekty strukturalne mogą być również zwracane przez funkcje jako wartości. Podlegają one tym samym regułom jak zmienne typów wbudowanych. Tworzony jest obiekt chwilowy, który staje się wartością funkcji. Może on być użyty jako argument innej funkcji lub zapamiętany w zmiennej za pomocą operatora przypisania.
Pracownik funkcja()
{
Pracownik p;
.....
return p;
}
- Obiekty zwracane w ten sposób są kopiowane!
- Należy być bardzo ostrożnym przy kopiowaniu obiektów strukturalnych zawierających składowe, które są wskaźnikami lub referencjami. Jak to należy poprawnie robić dowiedzą się Państwo na dalszych kursach (P1/P2). Na razie przyjmijmy, że funkcje nie zwracają przez wartość obiektów strukturalnych jeśli te zawierają pola wskaźnikowe lub referencyjne.
- Jeśli struktura ma składową, która jest tablicą statyczną (wielkość tablicy jest znana w czasie kompilacji), to jej (wygenerowane przez kompilator) kopiowanie wykona się poprawnie.