Új hozzászólás Aktív témák
-
Z_A_P
addikt
1
A screenshotban nem
for (Egitest* b : EgitestLista) {
van, hanem
Egitest b - csilag nelkul.2
typeid(Bolygo) == typeid(b)
Ilyet nem hasznalunk, helyette dyamic_cast<>, ami NULL-t ad vissza ha nem sikerult a cast. Termeszetesen pointert/referenciat hasznalunk.3
Az egesz kod buzlik, ha a listadban Egitest van, es azon kell ilyeneket futtatni, akkor inkabb az Egitest classban kellene egy virtualis GetKeringesiTavolsag().+1
Borzaszto stilus a magyar/angol keveres "GetKeringesiTavolsag"
Hasznalj 100%-ban CSAK angol neveket, minding mindenre.
Ezzel csak nyerhetsz, meghozza sokat. -
mgoogyi
senior tag
A screenshotodban nem pointered van, hanem normál objektumod.
Gondolom a listáddal is ugyanaz a helyzet.Ezzel az a baj, ha csinász egy ilyet, hogy:
Bolygo b;
Egitest e;
e = b; // az EgitestHozzaad-nál gyakorlatilag ezt csinálodEzesetben az "e" egy ledarált Egitest méretű változó lesz, amit a "b" égitestből örökölt részei adnak.
Ez az egész castolás téma akkor nyerhet értelmet, ha pointert vagy ref-et castolsz.
Látom c# háttered van.
C++-ban a normál értékadás by value megy összetett típusokra is, amit pl. az EgitestHozzaad függvény bemenő paraméternél történik. (Kb. mint a struct c#-ban)
Ez azt jelenti, hogy mindig egy másolat változóba megy az adat, amibe vagy copy konstruktorral vagy = operatorral kerül be az adat.A a = b; // copy ctor
a = b; // = operatorHa ki akarod használni a polimorfizmust, akkor vagy referenciákkal vagy pointerekkel kell dolgoznod.
A * a / A & aMiért akarsz visszacastolni bolygóra? Nem azért tartod közös kollekcióban az objektumokat, hogy mind ugyanúgy kezelhesd a közös interfaceükön keresztül?
-
Silεncε
őstag
Az úgy szerintem nem lesz jó, hogy egy Bolygó típusú változónak egy Bolygó*-ot akarsz átadni. Ha emlékezetem nem csal, C++-ban működik, hogy (Bolygó*), de nem vagyok benne biztos.
Egyébként a VS az aláhúzás mellé magyarázatot is ad, azt is beírhatnád ide, valszeg hamarabb jönne válasz
Ú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!
- Egérpad topik
- Milyen légkondit a lakásba?
- Autós topik
- alza vélemények - tapasztalatok
- Elektromos autók - motorok
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Az ASUS legfrissebb analóg billentyűzete az ízületeinket is kímélni szeretné
- Villanyszerelés
- Gitáros topic
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- További aktív témák...
- AMD Ryzen 7 5800X 8 mag / 16 szál / Beszámítás OK!
- Gigabyte B760M Gaming DDR4 / 30 hónap Alza.hu garancia / Beszámítás OK!
- Telefon szervízhez szükséges szerszámok
- hibás WerMamba Phantom roller +ajándékkal! (kivehető akkus, tárcsafékes)
- Lenovo Gamer Laptop: Ideapad Gaming 3 (i5 12500H, RTX3050, 32GB RAM)
- Kingmax 1x2GB DDR3-1333 RAM
- NEC MultiSync V421 monitor (42") 1920 x1080px
- BESZÁMÍTÁS! HP Victus 16-D0655NG notebook - i5 10400H 16GB DDR4 512GB+1TB SSD RTX 3060 6GB WIN10
- ÚJ HP EliteBook 840 G8 - 14"FHD IPS - i5-1145G7 - 32GB - 512GB SSD - Win10 - 6 hónap Garancia
- Csere-Beszámítás! Custom vizes számítógép játékra! I7 12700KF / RTX 3090 / 32GB DDR5 / 1TB SSD
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest