Hirdetés
- Nem folyik, nem kenődik, de hűteni azt tud
- Majdnem megfelezi a GeForce GPU-k gyártókapacitását az NVIDIA?
- EUV-áttörés vagy marketingfogás? Lépeget előre Kína a felzárkózás rögös útján
- Félrevezető a Tesla önvezető marketingje, mégis zöld utat kaphat Európában
- Kisétvágyú Radeon RX 9060 XT-t hozott az AMD
Új hozzászólás Aktív témák
-
-
Delete esetén ha a statikus (az első példában Base, a másodikban void) és a dinamikus (Derived) típus különbözik, akkor a dinamikus típusnak a statikus leszármazottjának kell lennie ÉS a statikus típus destruktorának virtuálisnak kell lennie, máskülönben undefined behaviour.
Szóval mindkét példa definiáltlan működés, saccra a gyakorlatban annyi történik, hogy az első példában meghívódik a Base destruktora (így a Derived saját dolgai felszabadítatlanul maradnak), a második példában meg csak egy free() a pointerrel.
-
jattila48
aktív tag
Attól tartok, nem egészen érted miről van szó. A member pointerek nem függenek egyetlen példánytól sem, hanem az osztály (nem az objektum!) tagjaira hivatkozó fordítás idejű konstansok. Úgy kell elképzelni, mint offset-et, ami az osztály kezdetéhez képest mutatja az adott tag helyét az osztályban. Pl. struct semmi{int a; int b;} osztályban a semmi::* pa=&semmi::a és semmi::* pb=&semmi::b deklarációkkal a pa=0 és pb=4 konstans értékeket vesz fel (feltehetőleg), mivel az a tag offsetje az osztályhoz lépest 0, a b-é pedig 4 (ha az a mérete 4 byte volt). Ugyanígy (nem virtuális) tfv.-ekre is, csak ekkor nem az offset, hanem a tfv. címe mint fordítás idejű konstans kerül a member function pointerbe. A HandleClass::mfp nálam ilyen member function pointer, ami történetesen a BodyClass::f tfv.-ének címét tartalmazza (és ez független a BodyClass bármely példányától, egy közönséges fv. cím). Ezért, mivel nem függ sem a HandleClass, sem a BodyClass egyetlen példányától sem, nyugodtan lehet statikus, hiszen minden példányban ugyanaz a konstans érték. Amikor (pimpl->*hc.mfp)(2); formában hívom a BodyClass f tfv.-ét, akkor ez nem azt jelenti, hogy az mpf a pimpl által mutatott objektum tagja lenne (mint ahogy a ->* miatt első ránézésre tűnik), hanem a BodyClass::f tfv. kapja a pimpl-et első paraméterként, 2-őt második paraméterként, (mint ahogy a tfv.-ek első paramétere mindig az aktuális példányra mutató this pointer), az mpf pedig történetesen a hc statikus tagja. Egyébként ahogy írtam, ha az mpf-et const-ként deklarálom akkor működik, különben pedig futási hibával elszáll. A VS kever valamit, mert a gcc jól fordítja. A VS is lefordítja, csak szerintem rosszul.
Ú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!
- Horgász topik
- Anime filmek és sorozatok
- Azonnali mobilos kérdések órája
- Milyen hagyományos (nem okos-) telefont vegyek?
- Íme az év legszebb játékai - a Digital Foundry szerint
- VR topik
- Mini-ITX
- Genshin Impact (PC, PS4, Android, iOS)
- Majdnem megfelezi a GeForce GPU-k gyártókapacitását az NVIDIA?
- Nyaralás topik
- További aktív témák...
- Intel i5-12600 KF processzor, LGA 1700, 3.70/4.90GHz, 10 hó Garancia
- GIGABYTE GeForce RTX 4070 Windforce OC 12G 2 év Garancia
- ÚJ, bontatlan iPhone 17 PRO 256GB minden színben KÁRTYAFÜGGETLEN! 1 év Apple garancia!
- ÚJ Dell G15 5530 i7-13650HX / RTX 4060 140W / 16GB DDR5 / 1TB SSD 375.000 Ft
- Dell Latitude 7490 14" FHD IPS, i5 - i7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- Telefon felvásárlás!! Apple Watch SE/Apple Watch SE 2 (2022)
- Telefon felvásárlás!! Xiaomi Redmi Note 10, Xiaomi Redmi Note 10s, Xiaomi Redmi Note 10 Pro
- Samsung Galaxy S25 Edge Titanium Jetblack 12/256 GB Használt, karcmentes 6 hónap garancia
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4076
- 146 - 147 - 166 - 167 - 168 - 169 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4090
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



