/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
v-tabel / v-ptr ?
Fra : Torben W. Hansen


Dato : 19-12-02 09:50

"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:at5g2o$2dfv$1@news.cybercity.dk...

Tak til Mogens Hansen for en særdeles fyldestgørende forklaring om v-ptr og
v-tabel i tidligere tråd.
Der er et par punkter (1, 2 ), som står lidt uklart for mig.

> vptr arver den afledte klasse fra basis-klassen. (1. specielt denne
sætning)
> For hver klasse med virtuelle funktioner, findes der en virtuel tabel -
> vtbl. (OK)
> Tabellen indeholder pointere til samtlige virtuelle metoder som klassen
> har (OK) - både dem den arver og dem den overskrive. (2. og denne
sætning)
> vptr sættes til at pege på den vtbl for den klasse som objektet faktisk
er. (OK)


Kan man drage følgende konklusion:
Hvis en klasse_a, indeholdende virtuelle metoder, har en afledt klasse_b, så
genereres der en "vtbl" for begge klasser - samt en "vptr" for hvert objekt
af begge klasser - også selvom den afledte klasse_b i sig selv ikke
indeholder virtuelle erklæringer ?

Med venlig hilsen
Torben W. Hansen




 
 
Kent Friis (19-12-2002)
Kommentar
Fra : Kent Friis


Dato : 19-12-02 17:19

Den Thu, 19 Dec 2002 09:50:06 +0100 skrev Torben W. Hansen:
>Kan man drage følgende konklusion:
>Hvis en klasse_a, indeholdende virtuelle metoder, har en afledt klasse_b, så
>genereres der en "vtbl" for begge klasser - samt en "vptr" for hvert objekt
>af begge klasser - også selvom den afledte klasse_b i sig selv ikke
>indeholder virtuelle erklæringer ?

Compileren kunne i princippet godt genbruge vtbl fra a, så der kun er
en af dem. vptr kan den derimod ikke undvære.

Mvh
Kent
--
"Intelligence is the ability to avoid doing work, yet get the work done"
- Linus Torvalds

Mogens Hansen (19-12-2002)
Kommentar
Fra : Mogens Hansen


Dato : 19-12-02 21:52


"Torben W. Hansen" <mail@ins-intersoft.com> wrote in message
news:ats16h$1fnn$1@news.cybercity.dk...

[8<8<8<]
> Hvis en klasse_a, indeholdende virtuelle metoder, har en afledt klasse_b,

> genereres der en "vtbl" for begge klasser

Ja.

> - samt en "vptr" for hvert objekt
> af begge klasser

Ja.

Venlig hilsen

Mogens Hansen



Torben W. Hansen (20-12-2002)
Kommentar
Fra : Torben W. Hansen


Dato : 20-12-02 09:08

Tak for besvarelserne til jer begge,

Jeg har brugt en del tid på både læsning om emnet samt gennemarbejdelse af
Mogen Hansen's tidligere uddybning, så det var rart at få afklaret de sidste
løse ender.

Med venlig hilsen
Torben W. Hansen




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste