Hirdetés
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
dobragab
#3322
üzenetére
Jó összefoglaló, csak egy kis kiegészítést engedj meg:
"- default ctor: végighívja az ősosztályok és adattagok copy ctor-át, sorrendben."
Itt fontos megjegyezni, hogy az ősosztályok ctorát az öröklési sorrendben, az adattagokét pedig deklarációjuk sorrendjében hívja. Vagyis nem feltétlenül a taginicializáló listában írt sorrendben (néhány fordító warning-ot generál, ha a taginicializáló lista sorrendje eltér a deklaráció sorrendjétől). Ezek után hajtódik végre a szóban forgó objektum ctorának törzse. A destruktorok hívása éppen fordított sorrendben történik: Először az adott dtor törzse fut le, ami végül a ctor-ok hívásának fordított sorrendjében meghívja az adattagok és ősosztályok dtorait.A move operációt illetően: a szabvány bizonyos feltételek mellett (kb. amit leírtál) előírja implicit move operáció generálását, azonban erősen kétséges, hogy ez valóban jó ötlet-e. Bizonyos fordítók (talán a VS2010 is) ezt nem teszik. Ha egyáltalán generálható implicit move operáció, akkor az kb. ugyanaz mint a copy operáció, ezért fölösleges a move. A move-nak akkor van igazán értelme, amikor implicite nem generálható, pl. user defined dtor esetén. A move-val legfőbb probléma az, hogy milyen állapotban maradjon a moved-from objektum, vagyis az operáció forrás objektuma. Legyen default konstruált? Mi van, ha nincs default ctor-a? Az "elmove-olt" erőforrást a dtor-nak már nem szabad felszabadítania. A moved-from objektum egyfajta "zombivá" válik, hasonlóan a kétfázisú inicializálással létrehozott objektum esetén, amikor a ctor már lefutott, de az inicializálás még nem történt meg teljes egészében (ez mint tudjuk, kerülendő). A moved-from objektum ezután már csak copy vagy move assignment cél operandusaként használható, vagy megsemmisítendő, de minden esetre ügyelni kell rá, hogy ne használjuk újra (mint ahogy a félig inizializált objektumokat sem).
-
ToMmY_hun
senior tag
válasz
dobragab
#3322
üzenetére
Nagyon szépen köszönöm a részletes leírást!
Nekem sok újat mondtál és gyors összefoglalónak kiváló - legalábbis így kezdőként könnyen fel tudtam fogni. A biztonság kedvéért a mester könyvében lévő konstruálással foglalkozó fejezetet tervezem átnyálazni, bár sok információt a cppreference.com-on is leírnak.Java-hoz képest jóval bonyolultabb a konstruálás (is), de nagyon szimpatikus az a precizitás, amit a nyelv megkövetel. Kivéve amikor ilyen apróság miatt megy el pár óra.

EQMontoya: "Elég fontos dolog, ha mélyebben belemész a c++-ba." Teljesen jogos, meg is van a programom estére.

Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- 96GB DDR5/ RTX4080/ Ryzen7 8700F alapú konfig/ garancia/ ingyen foxpost
- 512GB WD SN5000S Gen4 x4/ új, 1év garancia/ Steam Deck ready
- ASUS Zenbook S 13 OLED UM5302TA
- Swift SF16-51T 16" 3K OLED érintő Ultra 9 288V Arc 140V 32GB 1TB ujjlolv IR kam gar
- Sony Bravia XF85 43" 4K Ultra HD 100 Hz LED Android Smart TV (KD-43XF8577)
- Lenovo ThinkPad T14S Gen1 Ryzen5 4650U/8GB RAM Refurbished - Garancia - Akció!
- Oyomba VGP-BPS26 utángyártott akkumulátor / 12 hó jótállás
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Sony PlayStation 5 Slim 1TB SSD lemezes konzol garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3883, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

Nekem sok újat mondtál és gyors összefoglalónak kiváló - legalábbis így kezdőként könnyen fel tudtam fogni. A biztonság kedvéért a mester könyvében lévő konstruálással foglalkozó fejezetet tervezem átnyálazni, bár sok információt a cppreference.com-on is leírnak.



