Sdílet prostřednictvím


Adresa přetížených funkcí

Použití názvu funkce bez argumentů vrátí adresu funkce.Příklad:

int Func( int i, int j );
int Func( long l );

...

int (*pFunc) ( int, int ) = Func;

V předchozím příkladu je vybrána první verze Func a její adresa je zkopírována do pFunc.

Kompilátor rozhodne, která verze funkce bude vybrána pro vyhledání funkce se seznamem argumentů, která přesně odpovídá cíli hledání dané funkce.Argumenty v přetížených deklaracích funkce jsou porovnány s některou z následujících možností:

  • Objekt je inicializován (jak je znázorněno v předchozím příkladu)

  • Levá strana příkazu přiřazení

  • Formální argument funkce

  • Formální argument pro uživatelem definovaný operátor

  • Návratový typ funkce

Není-li nalezena přesná shoda, je výraz, který přebírá adresu funkce dvojznačný a je vygenerována chyba.

Všimněte si, že ačkoli byla v předchozím příkladu použita nečlenská funkce Func, jsou použita stejná pravidla při převzetí adresy přetížených členských funkcí.

Viz také

Referenční dokumentace

Přetížení