Haaste: Luokan Metodit
Luokan metodit ovat pohjimmiltaan vain funktioita, jotka on määritelty luokan sisällä. Niitä käytetään määrittämään ne toiminnot tai käyttäytymiset, joita luokan oliot voivat suorittaa.
Metodit muokkaavat usein luokan attribuutteja tai suorittavat toimintoja, jotka liittyvät olioihin.
Metodien toteutus luokan ulkopuolella
Metodit voidaan määritellä class-määrittelyn ulkopuolella käyttämällä alueen erotteluoperaattoria (::). Tämä tehdään usein, jotta määrittely voidaan erottaa otsikkotiedostoon ja toteutus lähdetiedostoon. Näin se tehdään:
Example.h
Example.cpp
1234class Example { public: void Method(); };
Ei ole pakollista luoda kahta erillistä tiedostoa tätä tarkoitusta varten; voit toteuttaa sen yhdessä tiedostossa, ja tietyissä tilanteissa tämä osoittautuu hyödylliseksi.
main.cpp
12345678#include <iostream> class Example { public: void Method(); }; void Example::Method() { std::cout << "Method was called" << std::endl; }
Voit ratkaista tehtävän haluamallasi tavalla. Yleinen hyvä käytäntö on kuitenkin eriyttää määrittely ja toteutus.
Swipe to start coding
Kuvittele, että rakennat yksinkertaista järjestelmää tuotteen hinnan laskemiseksi alennuksen kanssa. Järjestelmän tulee myös noudattaa erityistä sääntöä: mikään alennus ei saa ylittää 50 %, vaikka suurempi arvo annettaisiin.
Sinulla on luokka Product, jossa on seuraavat kentät:
pricetyyppiäfloatdiscounttyyppiäfloat
Sinun tulee toteuttaa metodi getFinalPrice(), joka:
- Tarkistaa alennuksen arvon: jos se on yli 50 %, aseta se arvoon 50 %.
- Laskee lopullisen hinnan ja palauttaa sen:
- Laske sulkujen sisällä alennuksen määrä kaavalla
(price * discount / 100) - Vähennä alennuksen määrä
price-kentästä saadaksesi lopullisen hinnan alennuksen jälkeen
- Laske sulkujen sisällä alennuksen määrä kaavalla
Esimerkki
price = 100.0, discount = 60.0 -> 50.0
price = 80.0, discount = 30.0 -> 56.0
price = 50.0, discount = 20.0 -> 40.0
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain what the scope resolution operator does?
Why is it considered good practice to separate declaration and implementation?
Can you give an example of defining a method outside the class?
Mahtavaa!
Completion arvosana parantunut arvoon 3.13
Haaste: Luokan Metodit
Pyyhkäise näyttääksesi valikon
Luokan metodit ovat pohjimmiltaan vain funktioita, jotka on määritelty luokan sisällä. Niitä käytetään määrittämään ne toiminnot tai käyttäytymiset, joita luokan oliot voivat suorittaa.
Metodit muokkaavat usein luokan attribuutteja tai suorittavat toimintoja, jotka liittyvät olioihin.
Metodien toteutus luokan ulkopuolella
Metodit voidaan määritellä class-määrittelyn ulkopuolella käyttämällä alueen erotteluoperaattoria (::). Tämä tehdään usein, jotta määrittely voidaan erottaa otsikkotiedostoon ja toteutus lähdetiedostoon. Näin se tehdään:
Example.h
Example.cpp
1234class Example { public: void Method(); };
Ei ole pakollista luoda kahta erillistä tiedostoa tätä tarkoitusta varten; voit toteuttaa sen yhdessä tiedostossa, ja tietyissä tilanteissa tämä osoittautuu hyödylliseksi.
main.cpp
12345678#include <iostream> class Example { public: void Method(); }; void Example::Method() { std::cout << "Method was called" << std::endl; }
Voit ratkaista tehtävän haluamallasi tavalla. Yleinen hyvä käytäntö on kuitenkin eriyttää määrittely ja toteutus.
Swipe to start coding
Kuvittele, että rakennat yksinkertaista järjestelmää tuotteen hinnan laskemiseksi alennuksen kanssa. Järjestelmän tulee myös noudattaa erityistä sääntöä: mikään alennus ei saa ylittää 50 %, vaikka suurempi arvo annettaisiin.
Sinulla on luokka Product, jossa on seuraavat kentät:
pricetyyppiäfloatdiscounttyyppiäfloat
Sinun tulee toteuttaa metodi getFinalPrice(), joka:
- Tarkistaa alennuksen arvon: jos se on yli 50 %, aseta se arvoon 50 %.
- Laskee lopullisen hinnan ja palauttaa sen:
- Laske sulkujen sisällä alennuksen määrä kaavalla
(price * discount / 100) - Vähennä alennuksen määrä
price-kentästä saadaksesi lopullisen hinnan alennuksen jälkeen
- Laske sulkujen sisällä alennuksen määrä kaavalla
Esimerkki
price = 100.0, discount = 60.0 -> 50.0
price = 80.0, discount = 30.0 -> 56.0
price = 50.0, discount = 20.0 -> 40.0
Ratkaisu
Kiitos palautteestasi!
single