- sziku69: Fűzzük össze a szavakat :)
- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
- Luck Dragon: Asszociációs játék. :)
- ricshard444: Fényképező ? Telefon helyett
- VoidXs: Tényleg minden játék optimalizálatlan?
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- M0ng00se: Hardvert áruhitelre?
- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
Ú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
-
amdni
aktív tag
Leírnám újra hátha nem vagyok egyértelmű:
van egy egitest típus
továbbá bolygó és csillag típus, ezeknek az őse az egitest.
Egy listában szeretnék őket tárolni.
list<egietst> lista;Szeretném kiolvasáskor megállapítani hogy pl. bolygó-e, és utána kasztolni az eredeti típusra, de nem tudom megoldani, alá van húzva a "b" betű.
bolygo temp;
for (Egitest* b : EgitestLista) {
if (typeid(Bolygo) == typeid(b)) {
temp = dynamic_cast<Bolygo*>(b); //itt a hiba! -
dabadab
titán
Erre van a typeid:
if ( typeid(*b) == typeid(bolygo) ) {
// ....
}C++-ban egyébként szerintem nem jó ötlet C-s pointereket alkalmazni: a legtöbb esetben egyáltalán nem kell pointer (főleg mióta van move semantics), a maradék nagy részében referenciákat lehet használni, ami meg ezek után is megmarad, ott meg a C++-os smart pointereket.
Ú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!
- Kerékpárosok, bringások ide!
- sziku69: Fűzzük össze a szavakat :)
- Micro Four Thirds
- Formula-1
- Samsung Galaxy Felhasználók OFF topicja
- PlayStation 3
- HP EliteBook / ZBook topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- HiFi műszaki szemmel - sztereó hangrendszerek
- Xbox tulajok OFF topicja
- További aktív témák...
- Valve Index VR Kit
- Uhh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 16/1TB RTX A2000 4GB /1 Millió/
- Esport PC - i5 13400F, GTX 1080ti és 16gb DDR5
- Ohh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- AZTA! HP EliteBook 840 G8 Fémházas Laptop Ultrabook 14" -60% i7-1185G7 16/512 FHD IPS Iris Xe
- Beszámítás! Apple Mac Studio M2 MAX 2023 32GB 512GB SSD számítógép garanciával, hibátlan működéssel
- Csere-Beszámítás! Lenovo Legion 5 White ! R5 5600H / RTX 3050Ti / 16GB / 500GB SSD
- Lenovo 13 Core i3-7100 Cpu laptop eladó
- Xiaomi Redmi A3 64GB Kártyafüggetlen, 1Év Garanciával
- AKCIÓ! HP USB C G5 Essential (5TW10AA) dokkoló hibátlan működéssel garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest