Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
jednakwC++:funkcjemogąmiećtakiesamenazwy,dopókiichargumenty
sięróżniąnazywasiętoprzeciążaniemfunkcji.Jakpokazanonalistingu3,
możeszużyćprzeciążeniafunkcji,abystworzyćwłasnefunkcjekonwertujące.
char*toa(intvalue,char*buffer,intbase){
--cięcie--
}
char*toa(longvalue,char*buffer,intbase)
--cięcie--
}
char*toa(unsignedlongvalue,char*buffer,intbase){
--cięcie--
}
intmain(){
charbuff[10];
inta:1;
longb:2;
unsignedlongc:3;3
toa(a,buff,10);
toa(b,buff,10);
toa(c,buff,10);
}
Listing3.Wywoływaniefunkcjiprzeciążonych
Wprzypadkukażdejzfunkcjitypdanychpierwszegoargumentujestod-
mienny.KompilatorC++mawięcwystarczającąilośćinformacji,abywybrać
właściwąfunkcję.Każdewywołanietoaużywaunikatowejfunkcji.Napocząt-
kutworzyszzmiennea,bic3,któreróżnymitypamiobiektówint
odpowiadającychjednejztrzechfunkcjitoa.Jesttowygodniejszerozwiązanie
niżdefiniowaniefunkcjiowieluróżnychnazwach,ponieważwystarczywymy-
ślićjedną,akompilatorsamzdecyduje,którąfunkcjęnależywywołać.
Referencje
WskaźnikikluczowącechąjęzykaC(aprzeztowiększościoprogramowa-
niasystemowego).Umożliwiająonewydajneprzetwarzaniedużychilości
informacjipoprzezprzekazywaniewyłącznieadresówzamiastrzeczywistych
danych.WskaźnikirównieważnewjęzykuC++,alewjegoprzypadku
istniejądodatkoweopcjezabezpieczające,którechroniąprzedwyłuskaniem
wskaźnikówowartościNULLiniezamierzonymizmianamiwartościwskaźni-
ków.
Obsługęwskaźnikówznaczniepoprawiająreferencje.onepodobnedo
wskaźników,aleistniejąmiędzynimirównieżpewne,kluczoweróżnice.Na
poziomieskładniowymreferencjeróżniąsięodwskaźnikówwdwóchobsza-
rach.Popierwsze,referencjedeklarujeszzapomocąznaku&,zamiast*,jak
pokazanonalistingu4.
xlWstępdlaprogramistówC