Eli yritän tehdä alla olevaa Auto-luokkaa, mutta en saa tuota kaynnissa() muuttujan arvoa muutetuksi. Onko tuo edes sinne päin, tulostus, auto on käynnissä vaikka pitäisi muuttua auto ei ole käynnissä eli(false).
Luokan metodit
// - kaynnista(), muuttaa kaynnissa-muuttujan arvoksi 1
// - sammuta(), muuttaa kaynnissa-muuttujan arvoksi 0
// - katsasta(), tulostaa auton tiedot esimerkkitulosteen mukaisesti
bool Auto::kaynnissa() { } bool Auto::kaynnista() { return kaynnissa()==true; } bool Auto::sammuta() { return kaynnissa()==false; } void Auto::katsasta() { TulostaAutonTiedot(); if (kaynnissa()==true) { cout << "Auto on käynnissä."; } else { cout << "Auto ei ole käynnissä."; }
Luokan määrittely puuttuu koodistasi, siis class Auto { ... }
. Joka tapauksessa muuttujan arvo asetetaan ykköseksi näin:
void Auto::kaynnista() { kaynnissa = 1; }
Koko koodi on tässä:
class Auto : private Ajoneuvo { public: string merkki, malli, rekkari; bool kaynnissa(); Auto(int paino, int huippu_nopeus, long ajetut_kilometrit, string auton_merkki, string auton_malli, string auton_rekkari, bool kaynnissa); int AnnaHuippunopeus(); long AnnaAjetutKilometrit(); int AnnaPaino(); void Aja(int ajettava_matka); void AsetaMerkki(string uusi_merkki); void AsetaMalli(string uusi_malli); void AsetaRekisteri(string uusi_rekisteri_nro); void TulostaAutonTiedot(); bool sammuta(); bool kaynnista(); void katsasta(); }; Auto::Auto(int paino, int huippu_nopeus, long ajetut_kilometrit, string auton_merkki, string auton_malli, string auton_rekkari, bool kaynnissa): Ajoneuvo(paino, huippu_nopeus, ajetut_kilometrit) { merkki = auton_merkki; malli = auton_malli; rekkari = auton_rekkari; } void Auto::AsetaMerkki(string uusi_merkki) { merkki = uusi_merkki; } void Auto::AsetaMalli(string uusi_malli) { malli = uusi_malli; } void Auto::AsetaRekisteri(string uusi_rekisteri_nro) { rekkari = uusi_rekisteri_nro; } int Auto::AnnaPaino() { return paino; } long Auto::AnnaAjetutKilometrit() { return ajetut_kilometrit; } void Auto::Aja(int ajettava_matka) { ajetut_kilometrit += ajettava_matka; } int Auto::AnnaHuippunopeus() { return huippu_nopeus; } bool Auto::kaynnissa() { return 0; } bool Auto::kaynnista() { return kaynnissa()==true; } bool Auto::sammuta() { return kaynnissa()==false; } void Auto::katsasta() { TulostaAutonTiedot(); if (kaynnissa()==true) { cout << "Auto on käynnissä."; } else { cout << "Auto ei ole käynnissä."; } cout << endl; } void Auto::TulostaAutonTiedot() { cout << "Auton tiedot:" << endl; cout << "Merkki: " << merkki << endl; cout << "Malli: " << malli << endl; cout << "Ajokilometrit: " << ajetut_kilometrit << endl; cout << "Paino: " << paino << endl; cout << "Huippunopeus: " << huippu_nopeus << endl; cout << "Rekisterinumero: "<< rekkari << endl; }
Jos kaynnissa() on funktio, siihen ei voi asettaa arvoa. Luulen et sen pitäisi olla muuttuja eli bool kaynnissa;
ilman sulkuja.
Onko tehtävänanto jossain netissä ja voitko linkata siihen?
Jees sain toimimaan, kiitoksia!
Hyvä!
Aihe on jo aika vanha, joten et voi enää vastata siihen.