Udostępnij za pośrednictwem


Ograniczenia dotyczące funkcji zastąpionej

Kilka ograniczeń regulować dopuszczalne zestaw funkcji zastąpionej:

  • Wszelkie dwie funkcje w zestawie funkcji zastąpionej musi mieć argument różnych list.

  • Przeciążanie funkcji argument wykazy te same typy, oparte na typ zwracany samodzielnie, występuje błąd.

    Programu Microsoft

Mogą przeciążać operator new wyłącznie w oparciu o typ zwrotny — w szczególności w oparciu o modyfikator model pamięci określony.

KONIEC Microsoft szczególne

  • Funkcji elementów członkowskich nie mogą być przeciążone wyłącznie w oparciu o jeden są statyczne i innych nonstatic.

  • typedefdeklaracje nie definiować nowe typy; wprowadzenie ich synonimy dla istniejących typów.Nie wpływają one na mechanizm overloading.Rozważmy następujący kod:

    typedef char * PSTR;
    
    void Print( char *szToPrint );
    void Print( PSTR szToPrint );
    

    Poprzednich dwóch funkcji mają identyczne argument list.PSTRjest synonimem typu char *.W zakresie Członkowskie ten kod generuje błąd.

  • Typy wyliczeniowe są różne typy i może służyć do odróżnienia funkcji zastąpionej.

  • Typy "tablica" i "wskaźnik" są traktowane jako identyczne dla celów rozróżniania funkcji zastąpionej.Dotyczy to tylko dla tablic zwymiarowany pojedynczo.W związku z tym następujące przeciążony konflikt funkcji i generować komunikat o błędzie:

    void Print( char *szToPrint );
    void Print( char szToPrint[] );
    

    Mnożenie zwymiarowany tablice wymiary drugiego i wszystkie następne są uważane za część tego typu.W związku z tym są używane w rozróżnieniu między przeciążonej funkcji:

    void Print( char szToPrint[] );
    void Print( char szToPrint[][7] );
    void Print( char szToPrint[][9][42] );
    

Zobacz też

Informacje

Omówienie przeciążenie