Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Akonáhle programátor deklaruje metódu , ktorá mená sa zvyčajne nedá určiť inú metódu s iným kódom vnútri . Vylúčenie je to , keď sa argumenty metódy sa líšia . Napríklad programátor mohol definovať metódu " vypočítať " , aby sa celé číslo ako argument :
int vypočítať ( int x )
Podľa pravidiel C + + , iná metóda s názvom " výpočet " , ktoré sa celé číslo ako argument by neexistovala , bez ohľadu na kóde vnútri metódy . Ale môže existovať iný spôsob , s rovnakým názvom a rôznymi argumenty :
int spočítať ( double x )
typ alebo argument , keď je volaná metóda by sa rozhodnúť , ktorá metóda vykonáva
.
obmedzenie
obmedzenia existujú , ako metóda preťaženie prácou v C + + . Aby k preťaženiu názov metódy , argumenty musia používať rôzne dátové typy , alebo sa líšia v množstve argumentov určené . Metódy , ktoré vracia rôzne hodnoty , ale zdieľajú názov a zhodný zoznam argumentov , ktoré nie sú povolené v C + + . Metódy s rovnakými menami a argumenty , ktoré sa líšia len kvôli iným názvom typu ( alebo dávať existujúceho dátového typu na iný názov ) , tiež nie sú povolené . Napríklad :
typdef int fake_int ;
int write ( int x )
double write ( int x )
int write ( fake_int x )
Žiaden z týchto troch definícií metódy dodržiavať pravidlá metóda preťaženiu a vráti chybu .
Odvodenie
Ďalším spôsobom , ako preťaženie metóda je pomocou triedy deriváciou . Pri konštrukcii triedy , môže programátor , aby funkčnosť a trieda dedí inej triedy . Dedenie ( odvodená ) trieda môžete použiť metódy triedy dedia zo základnej triedy ( ) . Základná trieda ( class X ) môže mať metóda " print " definovaný . Ďalšie trieda ( trieda Y ) , ktorá pochádza z triedy X má tiež prístup k tlači . Avšak , trieda Y by tiež definovať vlastnú verziu metódy tlače . V tomto prípade sa metóda tlače popravený byť jedna definovaná v triede Y , ak programátor špecifikuje , že trieda X verzia tlače by mala vykonať .
Príklady
príkladom metódy obnovoval cez odvodená trieda zahŕňa dve triedy. Po prvé , základná trieda :
trieda First (
verejnosť :
int x ;
int returnX ( ) { return
x ;
}
} ;
Potom, odvodená trieda , ktorá nanovo definuje " returnX ( ) " metódu :
class druhej : public Prvý {
verejnosť :
int returnX ) {
vrátiť x 1 ;
} (
} ;
" Second " trieda má prístup k premennej " x " a metódu " returnX ( ) " , ktoré sú súčasťou " prvej " triedy . Za druhé sa však nanovo definuje spôsob returnX ( ) vo svojej vlastnej definícii . To znamená , že ak objekt triedy zaklopania ( ) metóda na returnX , bude vrátená hodnota je x +1 .