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.