C++ jelppiä

koodinpariin

Mitenkäs C tehdään sellainen kun haluan että luokassa määriteltyä muuttujaa muutettaessa kutsutaan automaattisesti luokan funktiota.
Ulospäin siis näkyisi kuin muuttuja mutta sisäisesti temppu olisi funkiokutsu.

En muista millä tätä kutsuttiin joten enpä löydä kirjoista tai netistä apuja.

11

181

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Operator overloading

    • Yvubinokokok

      Function object.

    • Sekaannus-varmaan

      ("En muista millä tätä kutsuttiin joten enpä löydä kirjoista tai netistä apuja.")

      eikä ihmekkään, koska sellaista ei ole.

      Linux Mint 18.1 Serena
      Xfce 64-bit

      • sitätarvitaan

        Ehkä aloittelija voisi täsmentää ongelmaansa.


    • koodinpariin

      Kuvasin kyllä jo tuossa aloituksessa asian :-)
      Olisi vaan niin näppärää pistää muuttujan muuttamiseen sidottu rutiini tekemään asioita mitkä nyt pitää tehdä funktiokutsulla.
      Jotenkin muistelin että tällainen olisi kielessä. Siitä kun viimeksi tuli C koodailtua (työksi) on jo yli 25v joten ihan ei kaikkea syntaksista muista.

      • rekursiivinen-funktio

        Ainut mitä minulle tulee mieleen on rekursiivinen aliohjelma tai funktio joko kutsuu itseään. Tarpeen kun esimerkiksi suoritetaan kasiorakenteen sisällä tiedoston hakua. On vaan mahoton muistisyöppö, koska funktio kutsu saa prosessorin latomaan pinoon kuilloinkin voimassa olevien rekistereiden sisällön ja paluu osoitteet. No ehkä ei enään nykyään törmään pinonylivuoto virheeseen, mutta ennen se oli varottavissa ja oli pakko ottaa huomioon missä käytti ja missä ei.


        Linux Mint 18.1 Sarah
        Xfce 64-bit


      • Oligo

        Tarkoitatko sijoitusoperaattoria?


      • Tuolla-noin-hyvin

    • pcmuseo
    • koodinpariin

      Kiitokset vinkistä operaattorin overload-käyttöön.

      Alla oleva kyhäelmäni tuntuu toimivan mutta vielä jää ongelmaksi että pitäisi saada samalla lailla toisinpäinen sijoitus niin että obj1 voisi suoraan sijoittaa integeriin ilman pakollista viittaamista pistenotaatiolla luokan sisäiseen muuttujaan.


      #include "stdafx.h"
      #include <iostream>

      class example
      {
      public:
      int a;
      void operator=(int aaa);
      };

      void example::operator=(int aaa)
      {
      (*this).a = aaa;
      std::cout<<"kukkuu\n";
      }

      int _tmain(int argc, _TCHAR* argv[])
      {
      int bbb=100;
      example obj1;

      obj1 = bbb; // tulostaa kukkuu
      std::cout<<obj1.a ;

      for(;1;);
      }

    • koodinpariin

      Pitääpä ottaa takaisin. Sain ratkaistua toisin päin sijoitusongelmankin.
      Nyt esimerkkiluokkaan voi sijoittaa integerin ja se laukaisee funktion.
      Lisäksi luokan voi suoraan sijoittaa integeriin ja se laukaisee toisen funktion.
      Nyt voin tehdä vanhaan koodiin näppärän lisän ilman toimivan koko koodin muuttamista.
      Kiitokset vielä kerran overload-operaattorivinkeistä.

      #include "stdafx.h"
      #include <iostream>

      class example
      {
      public:
      int a;
      void operator=(int aaa)
      {
      (*this).a = aaa;
      std::cout<<"kukkuu\n";
      }

      operator int() const
      {
      std::cout<<"kiekuu\n";
      return a;
      }
      };


      int _tmain(int argc, _TCHAR* argv[])
      {

      int bbb=100;
      example obj1;

      obj1 = bbb;
      std::cout<<obj1.a <<"\n" ;

      obj1.a=123;

      bbb=obj1;

      std::cout<<bbb;

      for(;1;);

      }

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

    Luetuimmat keskustelut

    1. Baaritappelu

      Hurjaksi käynyt meno Laffassa. Jotain jätkää kuristettu ja joutunu teholle...
      Kokkola
      54
      5399
    2. Tappo Kokkolassa

      Päivitetty tänään Iltalehti 17.04.2024 Klo: 15:23..Mikähän tämä tapaus nyt sitten taas on.? Henkirikos Kokkolassa on tap
      Kokkola
      23
      3477
    3. Poliisit vaikenee ja paikallinen lehti

      Poliisit vaikenee ja paikallinen lehti ei kerro taposta taaskaan mitään. Mitä hyötyä on koko paikallislehdestä kun ei
      Kokkola
      28
      1602
    4. Miksi tytöt feikkavat saaneensa orgasmin, vaikka eivät ole saaneet?

      Eräs ideologia itsepintaisesti väittää, että miehet haluavat työntää kikkelinsä vaikka oksanreikään, mutta tämä väite ei
      Sinkut
      197
      1521
    5. Mitä ihmettä

      Kaipaat hänessä
      Ikävä
      76
      1076
    6. MAKEN REMPAT

      Tietääkö kukaan missä tämmöisen firman pyörittäjä majailee? Jäi pojalla hommat pahasti kesken ja rahat muisti ottaa enna
      Suomussalmi
      25
      1023
    7. Kuntoutus osasto Ähtärin tk vuode osasto suljetaan

      5 viikkoa ja mihin työntekijät, mihin potilaat. Mikon sairaalan lopetukset saivat nyt jatkoa. Alavudelle Liisalle tulee
      Ähtäri
      49
      897
    8. Itämaisesta filosofiasta kiinnostuneille

      Itämaisesta filosofiasta kiinnostuneille. Nämä linkit voivat auttaa pääsemään niin sanotusti alkuun. https://keskustel
      Hindulaisuus
      259
      836
    9. Välillä käy mielessä

      olisiko sittenkin ollut parempi, että emme koskaan olisi edes tavanneet. Olisi säästynyt monilta kyyneleiltä.
      Ikävä
      71
      789
    10. Mulla on kyllä

      Järkyttävä ikävä sua. Enkä yhtään tykkää tästä olotilastani. Levoton olo. Ja vähän pelottaa..
      Ikävä
      35
      788
    Aihe