Adresa přetížených funkcí

 

Publikováno: duben 2016

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 první verzi Func je vybrána, a její adresa je zkopírována do pFunc.

Kompilátor rozhodne, která verze funkce pro výběr podle funkce se seznamem argumentů odpovídající přesně cíli hledání. Argumenty v přetížených deklaracích funkce jsou porovnány s některou z následujících akcí:

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

  • Levé straně příkazu přiřazení

  • Formální argument pro funkci

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

  • Návratový typ funkce

Pokud není nalezena žádná přesná shoda, je výraz, který přebírá adresu funkce dvojznačný a je vygenerována chyba.

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

Viz také

Přetížení (C++)