Udostępnij za pośrednictwem


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.

Zobacz też

Przeciążenie (C++)