Új hozzászólás Aktív témák

  • mgoogyi

    senior tag

    válasz amdni #4211 üzenetére

    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álod

    Ezesetben 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; // = operator

    Ha ki akarod használni a polimorfizmust, akkor vagy referenciákkal vagy pointerekkel kell dolgoznod.
    A * a / A & a

    Mié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?

Új hozzászólás Aktív témák

Hirdetés