/ 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
c++, forskellige objekter i en liste ?
Fra : Dennis


Dato : 14-02-03 16:56

Hejsa

Jeg sidder lige og hygger mig lidt med en raytracer programmering
(visual c++) hvor der kan være både sphere og boxe i. Jeg ville så
lige hører om det er muligt at have 2 typer objekter i en container ?
Jeg har på nuværende tidspunkt arrangeret det således:

----------
| object |
----------
/ \
/ \
/ \
------- -----
|sphere| |box|
------- -----

Dvs. at box og sphere er nedarvet fra object. Kan jeg f.eks. lade
object nedarve fra vector i STL ?

Jeg har prøvet at kigge diverse steder på nettet og i news, men har
ikke kunnet finde noget

Mvh.

Dennis

 
 
Mogens Hansen (14-02-2003)
Kommentar
Fra : Mogens Hansen


Dato : 14-02-03 18:38


"Dennis" <dler00@control.auc.dk> wrote in message
news:uel6an9fs.fsf@control.auc.dk...

[8<8<8<]
> Jeg sidder lige og hygger mig lidt med en raytracer programmering
> (visual c++) hvor der kan være både sphere og boxe i. Jeg ville så
> lige hører om det er muligt at have 2 typer objekter i en container ?

Nej det er ikke muligt at have 2 forskellige typer objekter i en container.
Du skal lade containeren indeholde pointere til basisklassen, eller
handle-klasser som indkapsler den underliggende type.

[8<8<8<]
> Dvs. at box og sphere er nedarvet fra object. Kan jeg f.eks. lade
> object nedarve fra vector i STL ?

Teknisk set kan det godt lade sig gøre at arve fra std::vector, men det er
absolut ikke tilrådeligt og formodentlig heller ikke nødvendigt.
Man er typisk på vej af en forkert design-tangent, hvis man vil arve fra
std::vector. Typisk er det mere rigtigt at objektet indeholder en vector.

Venlig hilsen

Mogens Hansen



Dennis (14-02-2003)
Kommentar
Fra : Dennis


Dato : 14-02-03 18:40

"Mogens Hansen" <mogens_h@dk-online.dk> writes:

> Nej det er ikke muligt at have 2 forskellige typer objekter i en container.
> Du skal lade containeren indeholde pointere til basisklassen, eller
> handle-klasser som indkapsler den underliggende type.
>

Ok dvs. at containeren kommer til at indeholde pointer af typen
Object. Dvs. at spheres og boxe skal castes til object eller er der en
eller anden smart måde til det ?

Dennis

Dennis (14-02-2003)
Kommentar
Fra : Dennis


Dato : 14-02-03 19:27

Dennis <dler00@control.auc.dk> writes:


> Ok dvs. at containeren kommer til at indeholde pointer af typen
> Object. Dvs. at spheres og boxe skal castes til object eller er der en
> eller anden smart måde til det ?

Jeg har luret den, det gyldne ord var polymorphisme

Tak for hjælpen.

Dennis

Søg
Reklame
Statistik
Spørgsmål : 177491
Tips : 31966
Nyheder : 719565
Indlæg : 6408458
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste