|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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,
så
> 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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
| |
|
|