Új hozzászólás Aktív témák
-
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)
[ Szerkesztve ]
-
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
Ú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ó)
[ Szerkesztve ]
-
Ú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!
- Milyen SSD-t vegyek?
- Honor Magic6 Pro - kör közepén számok
- Google Pixel 6/7/8 topik
- Kötelező BIOS frissítéssel orvosolná a Core CPU-k stabilitási gondját az Intel
- Milyen billentyűzetet vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Drágább lett a Pixel 8a
- Kétventilátoros ASUS Radeon VGA-k az AMD-s felsőházban
- AMD vs. INTEL vs. NVIDIA
- E-roller topik
- További aktív témák...
- nVidia RTX 3080 Ti 12GB Founders Edition + GARANCIA
- Dell Latitude 3310, 13,3" HD Kijelző, I5-8265U CPU, 8GB RAM, 256GB SSD, WIN 10/11
- GameBoy Advanced SP (AGS-001) + Final Fantasy V és némi ajándék.
- Samsung Galaxy TAB A8 /// Szinte ÚJ // Számla + GARANCIA
- Acer játékra is,15,6", FullHD,6.gen.core i7,GT940 4!!/6GB VGA,8GB Ram,SSD+HDD,jó akku
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest