C++:n vastine javan superille?

n000000000b

Mikä on C :n vastine javan super-sanalle, jolla kutsutaan aliluokan metodia?

void Class::test() // test on virtuaalinen ja overraidattu
{
super.test(); // kutsutaan alempaa metodia???
}

7

570

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • a a

      aliluokka::test()

    • Ogma

      Valitettavasti super-viittaukselle ei ole C :ssa automaattista vastinetta. Feikkaaminenkin on vaikeaa, koska super-muuttujan alustus automaattisesti on hankalaa, koska pitäisi tehdä this-muuttujan kastaus yliluokan tyyppiseksi eli CYliA *super = (CYliA*) this; // this:in tyyppi on peritty CYliA:sta.
      Rakentajassa homma ei onnistu, koska this ei ole silloin vielä mitään. Toisaalta jos käyttää 2-portaista initialisointia, niin silloin jälkimmäisessä initialisointimetodissa voisi ko. kastauksen tehdä. Eli
      A *a = new A(); // olion a muuttujat "nollataan" järkeviksi
      a->init(); // tehdään jotain vähn monimutkaisempaa alustusta esim. yhteys tietokantaan tms.

      Toistaalta mekanismi ei ole automaattinen joten siihen käytetty aika ei välttämättä ole homman väärti. Jos pitää kutsua yliluokan metodia, niin siinä kohtaa vain this-pointterin kastaus on ainoa keino.....

      • sd<zv

        yläluokan metodin kutsuminen kuvatulla tavalla edustaa erittäin huonoa ohjelmointitapaa. parempi tapa on luoda toiminnan sisältävä suojattu virtuaalimetodi, joka ylimääritellään aliluokassa, ja tätä metodia kutsutaan julkisessa finaalissa metodissa.


      • korvia myöten täynnä
        sd<zv kirjoitti:

        yläluokan metodin kutsuminen kuvatulla tavalla edustaa erittäin huonoa ohjelmointitapaa. parempi tapa on luoda toiminnan sisältävä suojattu virtuaalimetodi, joka ylimääritellään aliluokassa, ja tätä metodia kutsutaan julkisessa finaalissa metodissa.

        takaisin nurkkaan häpeämään ja jätä ohjelmointi ammattilaisille jotka ei murehdi siitä mikä on hyvä ja mikä huono tapa kunhan ohjelma toimii niin kuin pitää!


      • Ammattilainen
        korvia myöten täynnä kirjoitti:

        takaisin nurkkaan häpeämään ja jätä ohjelmointi ammattilaisille jotka ei murehdi siitä mikä on hyvä ja mikä huono tapa kunhan ohjelma toimii niin kuin pitää!

        Jos tuollaista spagettikoodia tekee niin ylläpidettävyys on kyllä surkeaa. Ammattilaiset jotka isoissa firmoissa tekee softaa huomio sen, että seuraavassa julkaisussa uusia ominaisuuksia koodaa mitä ilmeisemmin aivan toinen heppu. wannabe ammattilaiset tekee spagettikoodia.


      • dim java paskaa

        Mitä ihmettä? Mihin tarviit jotain SUPER tai sen castausta?

        class A{
        private:
        int intA;
        protected:
        public:

        A(int joku_Aint){intA = joku_Aint;}

        int getAint(){return intA;}
        };

        class B : public A{
        private:
        int joku_Bint
        protected:
        public:
        //alustetaan se sun SUPER :A(jokuA)
        B(int jokuA, int jokuB):A(jokuA){joku_Bint = jokuB;}

        int getBint(){return intB;}

        };

        int main(){
        B bluokka(10,5);
        std::cout


    • dim Java paskaa

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ja taas ammuttu kokkolassa

      Kokkolaisilta pitäisi kerätä pois kaikki ampumaset, keittiöveitset ja kaikki mikä vähänkään paukku ja on terävä.
      Kokkola
      62
      5821
    2. Mitä siellä ABC on tapahtunut

      Tavallista isompi operaatio näkyy olevan kyseessä.
      Alajärvi
      115
      5030
    3. Helena Koivu on äiti

      Mitä hyötyä on Mikko Koivulla kohdella LASTENSA äitiä huonosti . Vie lapset tutuista ympyröistä pois . Lasten kodista.
      Kotimaiset julkkisjuorut
      410
      2992
    4. Ovatko naiset lopettaneet sen vähäisenkin vaivannäön Tinderissa?

      Meinaan vaan profiileja selatessa nykyään valtaosalla ei ole minkäänlaista kirjoitettua tekstiä siellä. Juuri ja juuri s
      Nettideittailu
      96
      1475
    5. Suomi vietiin Natoon väärin perustein. Viides artikla on hölynpölyä. Yksin jäämme.

      Kuka vielä uskoo, että viides artikla takaa Suomelle avun, jos Suomeen hyökätään. Liikuttavasti täällä on uskottu ja ved
      Maailman menoa
      341
      1146
    6. Et ilmeisesti aio enää ikinä olla tekemisissä

      Että näinkö se menee
      Ikävä
      65
      981
    7. Kuvaile elämäsi naista

      Millainen hän on? Mikä tekee hänestä sinulle erityisen?
      Ikävä
      29
      968
    8. Sydämeni on sinun luona

      Koko ajan. Oli ympärilläni ketä oli niin sinä olet vain ajatuksissa ja tunteissa. En halua muiden kosketusta kuin sinun
      Ikävä
      46
      896
    9. Trump ja Venäjä

      Huomasitteko muuten... Käytännössä ainoat valtiot, joille Trump EI eilen asettanut typeriä tariffejaan, olivat Venäjä ja
      Maailman menoa
      109
      877
    10. Jatkuva stressitila

      On sinun vuoksesi kun en tiedä missä mennään mutta tunteeni tiedän ainoastaan
      Ikävä
      52
      849
    Aihe