Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
26
JęzykC++.StandardISOwpraktyce
same,np.0177^0176dajepoobliczeniuwartość1.Operatoryprzesunięciawlewo<<
iwprawo>>przesuwająsekwencjębitówreprezentującądanąliczbęodpowiednio
wlewolubwprawo,wypełniajączwolnionebityzerami,np.dlax==6operacjax=x<<2
zmieniwartośćxna24.Jednoargumentowyoperatordopełnieniajedynkowego(bitowej
negacji)~dajeuzupełnieniejedynkoweswojegocałkowitegoargumentu,np.operacjan=
n&(~077)ustawiaostatniesześćbitówzmiennejnnazero.
Operatoryzwiększania++izmniejszaniamajądwieformy:przedrostkową,np.++x,
orazprzyrostkową,np.x++.Wpierwszymwypadkuxzostaniezwiększoneo1przed
użyciem,awdrugimpoużyciu.
Operatoryprzypisania.Elementarnaoperacjaprzypisaniamapostać:a=b,coczytamy:
zapiszwartośćbwmiejscupamięci(obiekcie)reprezentowanymprzezzmiennąa.Ope-
racjaprzypisaniamawogólnościpostać:a=aopb,wktórejopmożebyćjednym
zdziesięciuoperatorów:+,–,*,/,%,<<,>>,&,|,^.Operacjęmożnazapisaćwkrót-
szejpostaciaop=b,np.zamiasta=a+bmożemynapisaća+=b;zamiasta=a<<3może-
mynapisaća<<=3.Możliweprzypisaniawielokrotne,np.woperacjia=b=c=0
wszystkimtrzemzmiennymnadajesięwartośćzero.Dziejesiętak,ponieważprzypisanie
jestwyrażeniemmającymokreślonąwartośćorazdlatego,żeoperatoryprzypisania
prawostronniełączne,awięcsekwencjęa=b=c=0;możnazapisaća=(b=c=0));
Operatorsizeofpodajeliczbębajtówzajmowanychprzezobiekt.Argumentemoperatora
możebyćnazwatypulubwyrażenie.Jeżelioperatorsizeofodnosisiędonazwytypu,to
zapismapostaćsizeof(nazwa_typu);dlaobiektupewnegotypumamyzapissizeofobiekt,
np.dlatypuchar,sizeof(char)wynosi1.
Operatorwarunkowy.JesttojedynyoperatortrójargumentowywjęzykuC++.Wyraże-
niewarunkowe,utworzoneprzezzastosowanieoperatora?:mapostać:w1?w2:w3,gdzie
w1,w2,w3wyrażeniami.Najpierwobliczasięw1.Jeżeliw1!=0,toobliczasięw2iwy-
nikiembędziejegowartość.Jeżeliw1==0,towynikiemobliczeńbędziew3.Operatorwa-
runkowyjestniejawniewykorzystywanyprzezkompilatordokonwersjizintnaboolwe-
długreguły:zbool=zint?true:falseorazzbooldoint:zint=zbool?1:0,gdziezbool,
zintwartościamizmiennychtypubooliint.
Operatorprzecinkowypozwalautworzyćwyrażenieskładającesięzciąguwyrażeń
składowych,rozdzielonychprzecinkami.Wartościąwyrażeniajestskrajnyprawyele-
ment,awartościowanieprzebiegaodlewejdoprawej.Przykładwyrażeniazoperatorem
przecinkowym:num++,num+10,gdzienumjesttypuint.Najpierwzostaniezwiększona
o1zawartośćkomórkipamięcinum,anastępniezmiennanumzostaniezwiększonao10,
itawartośćjestwartościąkońcowądlaoperatoraprzecinkowegozpowyższymiargu-
mentami.Rozpatrzmyinnyprzykład:doublex,y,z;z=(x=2.5,y=3.5,y++).Wynikiem
wartościowaniawyrażeniazdwomaoperatoramiprzecinkowymibędąwartości:x==2.5,
y==4.5orazz==3.5(wartośćzniebędzierówna4.5,ponieważdoyprzyłożonoprzy-
rostkowyoperator++).
Operatorzasięgu::jakooperatorjednoargumentowypoprzedzanazwęobiektuoza-
sięguglobalnym.Wwersjidwuargumentowejlewyargumentjestnazwąklasylubprze-
strzeninazw,aprawynazwąelementuprzestrzeninazwlubnazwąelementuskładowe-
goklasy.
Operatorypobrania(>>)iwstawiania(<<)toprzeciążonewersjeoperatorówprzesu-
nięciawprawolubwlewo.Służądopobieraniaznakówzestrumieniacinlubwstawiania
znakówdostrumieniacout.