- OLED TV topic
- Hobby elektronika
- Gamescom 2025: Harminc évnyi VGA
- AMD Ryzen 7 / 5 2***(X) "Pinnacle Ridge" (AM4)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Az Xbox égisze alatt oldaná meg a PC-s játékosok legnagyobb gondját a Microsoft
- Milyen RAM-ot vegyek?
- Kompakt vízhűtés
- Kormányok / autós szimulátorok topikja
- Milyen notebookot vegyek?
Ú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!
- Apple iPhone 12 64GB, Akku: 100%, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Digitális PlayStation 5 // 2 darab kontrollerrel //
- Apple iPhone 11 64GB, Akku: 100%, Megkímélt, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- Samsung Galaxy A33 5G 6/128GB, Megkímélt, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- Nintendo Switch V2 32+128GB CFW okos! Dual Boot RP2040 Picofly Dual Boot tok + üvegfólia
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- Tablet felvásárlás! Samsung Galaxy Tab S10+, Samsung Galaxy Tab S10 Ultra, Samsung Galaxy Tab S10 FE
- Szinte új! 3 Hónapos! Playstation 5 Slim Disc (Lemezes) Kiadás! Garancia: 2027.05.15
- Honor MagicBook 16 Ryzen 5 5600H 16GB 512GB FHD 144Hz
- Több mint 70.000 eladott szoftverlicenc
Állásajánlatok
Cég: FOTC
Város: Budapest