Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [C++] class/struct type in een var opslaan (https://forum.scholieren.com/showthread.php?t=753175)

deathz0rz 19-02-2004 14:39

[C++] class/struct type in een var opslaan
 
is het mogelijk om een class/struct type in een variabele op te slaan? ik wil die namelijk dynamisch aanmaken

Screaming Slave 19-02-2004 14:56

nee. wat wil je doen dan?

deathz0rz 19-02-2004 15:09

laat maar, ik heb al wat gevonden

McMotion 19-02-2004 15:39

wat bedoel je met het type in een variabele opslaan? :confused: de static members ofzo?

deathz0rz 19-02-2004 21:54

andere vraag: gaat er data verloren als ik een class typecast naar zijn 'moeder'-class?

Screaming Slave 19-02-2004 22:24

je bedoelt een object? :p classes kan je niet typecasten. (/mierenneuk)

ehm, probeer het ff zou ik zeggen.

cast een instance van hond (met gewicht) back and forth van en naar dier (zonder member) en kijk of je het gewicht kunt aflezen.

denket wel.

deathz0rz 19-02-2004 22:34

is dit safe genoeg?
(er komt 3456 uit)

Code:

class bla
{
public:
        int a;
};

class lal: public bla
{
public:
        int b;
};

int main(int argc, char* argv[])
{
        int i=0;
        lal *x;
        bla *y;
        x = new lal;
        x->b=3456;
        y=(bla*)x;
        printf("%d\n",((lal*)y)->b);
        return 0;
}


Screaming Slave 19-02-2004 22:48

yup. dan klopt mijn (en jouw? :p) vermoeden zo te zien?

Chimera 20-02-2004 08:24

Citaat:

deathz0rz schreef op 19-02-2004 @ 22:54:
andere vraag: gaat er data verloren als ik een class typecast naar zijn 'moeder'-class?
Tuurlijk niet.

deathz0rz 20-02-2004 10:13

Citaat:

Screaming Slave schreef op 19-02-2004 @ 23:48:
yup. dan klopt mijn (en jouw? :p) vermoeden zo te zien?
jep

McMotion 21-02-2004 03:02

als je een object cast naar zijn base class dan is de data er nog wel (bij het casten verander je alleen de interpretatie van het geheugen, niet het geheugen zelf) dus je zou er nog wel een kunnen zitten door met de pointer te kloten ofzo maar dat is niet netjes.. met een typecast naar de afgeleidde class kan het ook zoals je zelf getest hebt :p maar dat is ook niet slim aangezien de typecast fout zou kunnen gaan als hij toch niet van de afgeleidde class is (en als je het zeker weet dat het dat wel is, waarom behandel je hem niet als instantie van die afgeleidde class?)


Alle tijden zijn GMT +1. Het is nu 21:20.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.