Funkcje 
Zwracanie referencji i wskaźników przez funkcję

Funkcja może również zwracać wskaźnik lub referencję. Wtedy taki wskaźnik albo referencja jest obiektem chwilowym, a nie sam obiekt, na który taki wskaźnik pokazuje.

 
int* f(){
  int* result;
  ......
  return result;
}
 
const int& h(int& x){
  ...
  return x;
}

Zwykle za pomocą wskaźnika lub referencji zwraca się jeden z otrzymanych argumentów, który może być użyty jako argument dla innej funkcji albo wskaźniki/referencje do obiektów utworzonych na stercie.

Ważna uwaga:
nie należy zwracać referencji ani wskaźników do obiektów lokalnych w funkcji. Przestają one istnieć zaraz po zakończeniu funkcji. W związku z tym tak adres jak i referencja są nieaktualne.
int& f()
{
  int k;
  ....
  return k; // BŁĄD! zwracamy referencję do zmiennej lokalnej
}

Przykład - zwracanie wartości przez wskaźnik.

Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak