Joo tarvitsisin apua tässäkin tehtävässä...Tulostuksessa on pieni ongelma nimittäin tälläinen, YLIMÄÄRÄINEN Hau!!!-sana;
Koiran tiedot:
Nimi: Rekku
Ikä: 2
Rotu: Dalmatialainen
Hau!!!(Tämä on ongelma)
Koira sanoo: Hau!!!
Tehtävä.Alla on luokka "Koira", josta puuttuu olioden muodostamiseen tarvittava alustusmetodi, sekä metodit TulostaTiedot() ja Hauku(). Täydennä luokkaa niin, että luokasta voidaan muodostaa olioita. Ja tee puuttuvat metodit. Olion muodostamisen yhteydessä olio saa arvot: ikä, nimi, rotu ja ääni.
#include <iostream> #include <string> using namespace std; class Koira{ public: int ika; string rotu; string nimi; string aani; Koira(); Koira(int ika, string uusi_nimi, string uusi_rotu, string uusi_aani); string Hauku(); void AsetaNimi(string uusi_nimi); void AsetaRotu(string uusi_rotu); void AsetaIka(int uusi_ika); void AsetaAani(string uusi_aani); void TulostaTiedot(); }; Koira::Koira() { nimi = "Nimetön"; rotu = "Roduton"; ika = 0; aani = "Äänetön"; } Koira::Koira(int uusi_ika, string uusi_nimi, string uusi_rotu, string uusi_aani) { nimi = uusi_nimi; rotu = uusi_rotu; ika = uusi_ika; aani = uusi_aani; } string Koira::Hauku() { cout << aani << endl; return aani; } void Koira::AsetaAani(string uusi_aani) { aani = uusi_aani; } void Koira::AsetaNimi(string uusi_nimi) { nimi = uusi_nimi; } void Koira::AsetaRotu(string uusi_rotu) { rotu = uusi_rotu; } void Koira::AsetaIka(int uusi_ika) { ika = uusi_ika; } void Koira::TulostaTiedot() { cout << "Nimi:" << nimi << endl; cout << "Ikä:" << ika << endl; cout << "Rotu:" << rotu << endl; } int main() { Koira rekku(2, "Rekku", "Dalmatialainen", "Hau!!"); cout << "Koiran tiedot:" << endl; rekku.TulostaTiedot(); cout << "Koira sanoo: " << rekku.Hauku(); }
Jospa poistat rivin 44
Atomic kirjoitti:
cout << aani << endl;
Tai semanttisesti ehkä parempi olisi muuttaa niin että Hauku ei palauta mitään ja viimeiset rivit olisi
cout << "Koira sanoo: "; rekku.Hauku();
Joka tapauksessa jos työnnät koiran äänen ulos-virtaan kahteen kertaan niin se tulee luonnollisesti kahteen kertaan.
Hei kiitti taas, ihan oikeeesti. Tuntuu ny vähän hölmölt ku en tajunnu tota=)
Atomic kirjoitti:
Hei kiitti taas, ihan oikeeesti. Tuntuu ny vähän hölmölt ku en tajunnu tota=)
Teen itse samaa tehtävää ja tämä auttoi minuakin, kiitos!
Aikaisemmin teoriassa oli vastaavan tyylinen malli, mutta siellä tuo haukku oli "void" ja tässä se on "string". Osaatko selittää miksi sen tyyppi muuttuu tässä tehtävässä? :)
SyntaxError kirjoitti:
Osaatko selittää miksi sen tyyppi muuttuu tässä tehtävässä? :)
Tässä tehtävässä on virhe. Ei ole mitään järkeä, että Hauku sekä tulostaa että palauttaa äänen. Funktion pitäisi tehdä vain yksi asia eli joko tulostaa teksti tai palauttaa se muualla käytettäväksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.