Udostępnij za pośrednictwem


Adresy dla funkcji przeciążenia

Użycie nazwy funkcji bez argumentów zwracając 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, pierwsza wersja Func jest zaznaczona, a jego adres zostanie skopiowany do pFunc.

Kompilator określa, którą wersję funkcji wybrać, znajdując funkcję z listą argumentów, która dokładnie pasuje do tego obiektu docelowego.Argumenty w deklaracji funkcji przeciążonej są dopasowywane do jednej z następujących czynności:

  • Obiekt jest zainicjowany (jak pokazano w poprzednim przykładzie)

  • Lewa strona instrukcji przypisania

  • Argument formalny do funkcji

  • Argument formalny do operatora zdefiniowanego przez użytkownika

  • Zwracane typy funkcji

Jeśli nie zostanie znalezione dokładne dopasowanie, wyrażenie, które przyjmuje adres funkcji jest niejednoznaczne i zostanie wygenerowany błąd.

Należy zauważyć, że chociaż funkcja nieczłonkowska, Func, została użyta w poprzednim przykładzie, te same zasady są stosowane podczas przyjmowania adresów przeciążonych elementów członkowskich funkcji.

Zobacz też

Informacje

Przeciążenie