Přetížená funkce omezení
Přijatelné množinou přetížené funkce se řídí několik omezení:
Žádné dvě funkce v sadě přetížené funkce musí mít argument různé seznamy.
Přetížení funkce s seznamů argumentů stejné typy na základě návratový typ samostatně, je chyba.
Konkrétní společnosti Microsoft
Může přetížit nový operátor výhradně na základě vracet typ – konkrétně na základě paměťový model modifikátor, zadán.
Konec konkrétní společnosti Microsoft
Pouze z jednoho jsou statické a jiných nonstatic nesmí být přetížené funkce členů.
typedefprohlášení není definovat nové typy; mohou zavést synonyma pro existující typy.Neovlivní overloading mechanismu.Zvažte následující kód:
typedef char * PSTR; void Print( char *szToPrint ); void Print( PSTR szToPrint );
Předchozí dvě funkce mají seznamů argumentů identické.PSTRje synonymum pro typ char *.V oboru člena tento kód vygeneruje chybu.
Výčtové typy jsou odlišné typy a slouží k rozlišení mezi přetížené funkce.
Typy "pole" a "ukazatele" jsou považovány za identické pro účely rozlišování mezi přetížené funkce.To platí pouze pro jednotlivě rozměry matice.Proto následující přetížené funkce konflikt a generovat chybovou zprávu:
void Print( char *szToPrint ); void Print( char szToPrint[] );
Násobit rozměry matice jsou druhý a všechny následující rozměry považovány za součást typu.Proto se používají v rozlišování mezi přetížené funkce:
void Print( char szToPrint[] ); void Print( char szToPrint[][7] ); void Print( char szToPrint[][9][42] );