single
Haaste: Konstruktori ja Attribuutit
Pyyhkäise näyttääksesi valikon
Yksi konstruktorien ensisijaisista käyttötarkoituksista on alustaa luokan attribuutit. Oletuskonstruktoria voidaan esimerkiksi käyttää asettamaan alkuarvot. Esimerkiksi:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Jos et määritä arvoa objektin name-attribuutille, se asetetaan oletuksena arvoksi underfined. Voit kokeilla poistaa tämän konstruktorin nähdäksesi, mitä muutoksia tapahtuu.
Attribuuttien alustaminen konstruktorilla
Kuten funktiot, konstruktorit voivat ottaa parametreja, jolloin olion luonnin yhteydessä voidaan antaa erilaisia arvoja. Konstruktorit voidaan myös ylikuormittaa käsittelemään vaihtelevaa määrää argumentteja.
main.cpp
123456789101112131415161718class Person { public: Person(std::string _name, std::string _surname, int _age) { name = _name; surname = _surname; age = _age; } std::string name; std::string surname; int age; }; int main() { Person person("Bob", "Song", 23); }
Pyyhkäise aloittaaksesi koodauksen
Kuvittele, että rakennat yksinkertaista karttajärjestelmää. Sinun tulee luoda Location-luokka, joka edustaa pistettä kartalla nimellä ja koordinaateilla. Tehtävänäsi on toteuttaa konstruktori sekä metodi etäisyyden laskemiseen toiseen sijaintiin.
- Toteuta konstruktori, joka alustaa kaikki kolme kenttää:
- Konstruktorin tulee ottaa kolme parametria:
std::stringnimelle sekä kaksidoublearvoaxjay. - Aseta parametrina saatu nimi olion
name-kenttään. - Aseta parametrina saatu
x-koordinaatti olion x-kenttään. - Aseta parametrina saatu
y-koordinaatti olion y-kenttään.
- Konstruktorin tulee ottaa kolme parametria:
- Toteuta metodi
distanceTo, joka ottaa toisenLocation-olion parametrina:- Käytä sekä nykyisen olion että toisen olion
x-koordinaatteja jay-koordinaatteja. - Laske erotus x-koordinaateille:
other.x - x. - Laske erotus y-koordinaateille:
other.y - y. - Laske etäisyys kaavalla:
sqrt(dx * dx + dy * dy). - Palauta laskettu etäisyys
double-tyyppisenä.
- Käytä sekä nykyisen olion että toisen olion
Example
Location("Home", 0.0, 0.0) and Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) and Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) and Location("Library", 2.0, 3.0) -> 5.0
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme