Adresy dla funkcji przeciążenia
Opublikowano: czerwiec 2016
Użyj nazwy funkcji bez argumentów zwraca adres tej funkcji. Na przykład:
int Func( int i, int j );
int Func( long l );
...
int (*pFunc) ( int, int ) = Func;
W powyższym przykładzie pierwszą wersję Func jest zaznaczone, a jego adres jest kopiowana do pFunc.
Kompilator Określa wersję funkcji wybierz znajdując funkcję z listy argumentów, która dokładnie odpowiada obiektu docelowego. Argumenty w deklaracjach funkcji zastąpionej są dopasowywane jedną z następujących czynności:
Obiekt inicjowany (jak pokazano w poprzednim przykładzie)
Po lewej stronie instrukcji przypisania
Argument formalny do funkcji
Argument formalny operator zdefiniowane przez użytkownika
Zwracany typ funkcji
Jeśli nie znaleziono dokładnego dopasowania jest, wyrażenie przyjmuje adres funkcji jest niejednoznaczne i generowany jest błąd.
Należy zauważyć, że funkcja nie Członkowskich, Func, została użyta w poprzednim przykładzie, te same zasady są stosowane, gdy biorąc adres przeciążone funkcje elementów członkowskich.