Hirdetés
- potyautas: Idővándor
- Brogyi: CTEK akkumulátor töltő és másolatai
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Fűzzük össze a szavakat :)
- sidi: 386-os Chicony gázplazma laptop memóriabővítése
- tordaitibi: Windows rendszerek indítása EFI partíció nélkül
- gban: Ingyen kellene, de tegnapra
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Új hozzászólás Aktív témák
-
-
Chris_T
tag
Újabb problémába futottam:
Objektum attrib.-jait akarom fájlba kiíratni, és ahogy a beolvasáskor a sor elején lévő betű határozza meg hogy az adott sor milyen objektum tulajdonságait tartalmazza (ez alapján lesz létrehozva)
Fáljba íratáskor ugyanigy a sor elejére lenne irva hogy milyen tiupusú (t, k, h)
Találtam is rá egy megoldást:
cout << typeid(alakzatok[0]).name()
De sajnos az általános Alakzat-tömb miatt mindenre Alakzatot ir,
Egy új adattag bevezetésére gondoltam ami minden objektumnál tárolná a tipusát, tudna esetleg valaki egy ötletet mondani ennek elkerülésére ? (valamilyen módszerre gondoltam ami a typeid-t használja fel, de az azonos tömbpointerek miatt ez nem jó)
-
Chris_T
tag
Köszönöm a segítséget
Most hogy nezem, nem is ertem p-t miert Alakzatnak valasztottam
kiegészítve castolással, most már müködik igy isTeglalap *p;
p = (Teglalap*)alakzatok[0];
cout << "a teglalap A oldala: " << p->getA() << endl;Illetve a következő forma, amit egy másik fórumon találtam, az is müködik
cout << "oldalak: " << static_cast<Teglalap *>(alakzatok[0])->getA() << " es " << static_cast<Teglalap *>(alakzatok[0])->getB() << endl;
Ami miatt mérgelődök hogy, a sok kombincáioban, amit probáltam, a static_cast is benne volt, csak ott valami más volt a gond (de egyébként jó lett volna ezek szerint)
-
Chris_T
tag
Üdv.
Gyerekosztályra való castolásban kellene segítség, már sokféleképp próbáltam, sehogyse müködik:
A két osztály:
ösosztály: Alakzat ( int x, y tagok es getX() getY() fv-k ) //x,y: középpont
gyerekosztály: Teglalap ( int a, b tagok es getA() getB() fv-k) //a,b: oldalaklétre van hozva egy ösosztály tömb, amibe kerülhet Teglalap, Kor, Haromszog is:
Alakzat* alakzatok[20];utána beleteszek egy téglalapot:
alakzatok[i] = new Teglalap(0, 0, 10, 20);de a téglalap metódusait már nem tudom meghívni a tömbből:
Alakzat *p;
p = dynamic_cast<Teglalap*>(alakzatok[0]);
cout << "a teglalap a oldala: " << p->getA() << endl;'class Alakzat' has no member named 'getA'
(Próbálkoztam már többek közt azzal is hogy eleve Alakzat osztályra való konvertálással teszem be a tömbbe, illetve a staic, dynamic cast se segített)
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3060, 94% Akkumulátor
- Azonnali A320 B350 X370 B450 X470 A520 B550 X570 chipset alaplap felvásárlás személyes/csomagküldés
- 24 GB-os RTX 3090 OEM
- 159 - Lenovo LOQ (15APH8) - AMD Ryzen 7 7840HS, RTX 4060
- Apple iPhone 13 128 GB Fekete 1 év Garancia Beszámítás Házhozszállítás
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest