Ez miért nem fordul le? Nem értem, hogy miért rossz.
Elírtam a cDog konstruktorába a i_DogMove -t
Már jó .D
De nem értem teljesen amit hibáztam el tudnátok magyarázni?
Így jó:
cDog :: cDog( ushort age , float weight , COLOR color , long speed ):
i_DogMove( new cMove( speed ) ) ,
i_age( new ushort( age ) ) ,
i_weight( new float( weight ) ) ,
i_color( new COLOR( color ) ) { //Itt problémázik.
cout << "cDog konstruktor \n" ; }
És így volt rossz:
cDog :: cDog( ushort age , float weight , COLOR color , long speed ):
i_DogMove( new cDog( speed ) ) ,
i_age( new ushort( age ) ) ,
i_weight( new float( weight ) ) ,
i_color( new COLOR( color ) ) { //Itt problémázik.
cout << "cDog konstruktor \n" ; }
Még mindig nem jó lefordul de nem csinálja amit kéne.
Befagy.
"De nem értem teljesen amit hibáztam el tudnátok magyarázni?"
Van egy cMove* típusú pointered, és inicializálni akarod egy cDog* típusú pointerrel. A két típus között semmiféle öröklődési kapcsolat nincs. Szerinted mi a probléma?
Amúgy miért használsz mindenre mutatókat?
Ha jól sejtem, kedves kérdező, te már tettél fel itt programozós kérdést, ahol szintén egy rakat látszólag teljesen felesleges pointer és egy csomó állatfajta volt.
Szerintem kezdj el egy másik könyvet vagy valami, mert így nem fog menni. Legalábbis én ezt javaslom így az eddigiekből.
"Hát akkor mikor kéne használnom a pointereket adattagokként"
Első megközelítésbe adattagokként nem pontereket használunk.
Pointereket akkor szoktak használni ha egy konkrét objektumot több objektum is birtokol, vagy a birtoklás dinamikusan változhat.
Pl. egy szimuláció a bankok és emberek között. Egy bankba több ember nyithat számlát, akik ugyan abba a bankba vannak azoknak a bank adattagjuk ugyan arra a bank osztálybeli objektumra mutat. Persze a bank objektumnak is illik nyilvántartani az ügyfeleket valamilyen ember/ügyfél pointereket tároló konténerbe. Egyszerűség kedvéért lehet hogy egyszerre egy ember csak egy baknak az ügyfele.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!