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] );