Hirdetés
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Vivo X200 Pro - a kétszázát!
- Örömkönnyek és üres kezek a TriFold startjánál
- Samsung Galaxy A54 - türelemjáték
- Poco M7 - lépésben Siófok felé
- iPhone topik
- Xiaomi 15 - kicsi telefon nagy energiával
- A középkategória egyik legjobb vétele - Dreame L40 Ultra AE
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Bemutatkozott a Poco X7 és X7 Pro
Új hozzászólás Aktív témák
-
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!
- Kerékpárosok, bringások ide!
- Autós topik
- Visszaengedi Kínába az NVIDIA H200-at a Trump-adminisztráció
- Diablo IV
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- alza vélemények - tapasztalatok
- TCL LCD és LED TV-k
- AMD Navi Radeon™ RX 9xxx sorozat
- Warhammer 40.000
- VR topik
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Apple Watch Ultra 2 49mm Cellular okosóra garanciával hibátlan működéssel
- Akció! ÚJ akku! Lenovo ThinkPad X1 Extreme Gen2 i7-9850H 16GB 512GB GTX1650 500nit UHD 1 év gar
- Bomba ár! Lenovo ThinkPad T450s - i5-5GEN I 8GB I 240GB SSD I 14" HD+/FHD I Cam I W10 I Garancia!
- LG 55C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


