Udostępnij za pośrednictwem


Zwraca funkcję typ odwołania

Funkcje mogą być deklarowane do zwracany typ odwołania.Istnieją dwa powody takiego oświadczenia:

  • Informacje są zwracane jest obiekt wystarczająco duże, że zwracając odwołanie jest bardziej wydajny niż zwracanie kopii.

  • Typ funkcji musi być wartością l.

Podobnie jak może być bardziej efektywne, aby przekazać dużych obiektów do funkcji przez odniesienie, również może być bardziej efektywne, aby powrócić do dużych obiektów z funkcji przez odniesienie.Protokół zwrotu odniesienia eliminuje konieczność kopiowania obiektu do lokalizacji tymczasowej przed do powrotu.

Typy zwrotu odniesienia mogą być również użyteczne, gdy funkcja musi dawać w wyniku wartość l.Najbardziej przeciążone operatory należą do tej kategorii, szczególnie operatorem przypisania.Objęte są operatorzy Overloaded Przeciążone operatory.

Przykład

Należy wziąć pod uwagę Point przykład:

// refType_function_returns.cpp
// compile with: /EHsc

#include <iostream>
using namespace std;

class Point
{
public:
// Define "accessor" functions as
//  reference types.
unsigned& x();
unsigned& y();
private:
unsigned obj_x;
unsigned obj_y;
};

unsigned& Point :: x()
{
return obj_x;
}
unsigned& Point :: y()
{
return obj_y;
}

int main()
{
Point ThePoint;
// Use x() and y() as l-values.
ThePoint.x() = 7;
ThePoint.y() = 9;

// Use x() and y() as r-values.
cout << "x = " << ThePoint.x() << "\n"
<< "y = " << ThePoint.y() << "\n";
}

Dane wyjściowe

x = 7
y = 9

Warto zauważyć, że funkcje x i y są deklarowane jako przekazujących dane typy odwołań.Te funkcje mogą służyć po dowolnej stronie instrukcji przypisania.

Deklaracje typów odwołań musi zawierać inicjatorów, z wyjątkiem następujących przypadków:

  • Jawne extern zgłoszenia

  • Deklaracja członka klasy

  • Deklaracja klasy

  • Deklaracja argumentu dla funkcji lub typ zwracany dla funkcji

Zobacz też

Informacje

Odwołania (C++)