Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
#include<memory>
structFoundation{
constchar*founder;
};
structMutant{
//Wkonstruktorzejestodpowiedniokonfigurowanyobiektfoundation:
Mutant(std::unique–ptr<Foundation>foundation)
:foundation(std::move(foundation)){}
std::unique–ptr<Foundation>foundation;
};
intmain(){
std::unique–ptr<Foundation>second–foundation{newFoundation{}};
//...użyciezmiennejsecond_foundation
Mutantthe–mule{std::move(second–foundation)};
//Zmiennasecond_foundationjestwstanie"po-przeniesieniu"
//Obiektthe_mulestajesięwłaścicielemobiektutypuFoundation
}
Listing27.Programprzenoszącyobiekttypuunique_ptr
Takjakpoprzednio,tworzyszunikatowyobiektunique–ptr<Foundation>.
Używaszgoprzezjakiśczas,anastępniedecydujeszsięprzenieśćprawawła-
snościnaobiektMutant.Funkcjamoveinformujekompilator,żechceszwykonać
transfer.Poutworzeniuobiektuthe–muleczasżyciaobiektuFoundationzosta-
jeznimzwiązanypoprzezzmiennąskładową.
Zrelaksujsięicieszsięswoiminowymibutami
C++jestfaktycznienajważniejszymjęzykiemprogramowaniasystemowego.
DużaczęśćTwojejwiedzyojęzykuCzostaniebezpośredniowykorzystana
wC++,jednakżenauczyszsiętakżewielunowychpojęć.Wykorzystująckon-
strukcjeSuperC,możeszzacząćstopniowowłączaćjęzykC++doswoich
programównapisanychwC.Gdyjużzdobędzieszumiejętnościzwiązane
zbardziejzaawansowanymizagadnieniamijęzykaC++,przekonaszsię,że
tworzeniekoduwnowoczesnymC++mawieleistotnychzaletwstosunkudo
C.Będzieszmógłzwięźlewyrażaćideewkodzie,wykorzystywaćimponującą
bibliotekęstdlib,bytworzyćnawyższympoziomieabstrakcji,używaćszablo-
nówwcelupoprawywydajnościśrodowiskauruchomieniowegoiponowne-
gowykorzystaniakoduorazopieraćsięnacyklużyciaobiektuC++wcelu
zarządzaniazasobami.
Uważam,żeinwestycjawnaukęC++przyniesieogromnekorzyści.
Myślę,żepoprzeczytaniutejksiążkizgodziszsięzemną.