#include "pch.h"
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <conio.h>
using namespace std;
class Samochod //ogólna klasa samochód
{
private:
int Pojemnosc;
int Paliwo;
public:
Samochod(int pojemnosc, int paliwo)
: Pojemnosc(pojemnosc), Paliwo(paliwo) {}
void WyswietlStan()
{
printf("zbiornik paliwa wynosi : %d na %d litra \n", Paliwo, Pojemnosc);
}
//wspólne metody dla wszystkich rodzajów samochodów
int PojemnoscBaku()
{
return Pojemnosc;
}
int IloscPaliwa()
{
return Paliwo;
}
bool CzyLadowny()
{
return false;
}
};
class SamochodMiejski:public Samochod
{
private:
string Kolor; //nowy argument kolor
public:
SamochodMiejski(int pojemnosc, int paliwo, string kolor) : Samochod(pojemnosc, paliwo) {} chod
const char* PobierzKolor()
{
return Kolor.c_str();
}
void WyswietlStan()
{
Samochod::WyswietlStan();
printf("Kolor %c\n", PobierzKolor());
}
};
class Limuzyna :public Samochod // Limuzyna dziedziczy argumenty Samochodu w sposob publiczny
{
private:
bool Nawigacja;
bool SkorzanaTapicerka;
public:
Limuzyna(int pojemnosc, int paliwo, bool nawigacja, bool skorzanatapicerka)
: Samochod(pojemnosc, paliwo),
Nawigacja(nawigacja), SkorzanaTapicerka(skorzanatapicerka) {}
//metody
bool MaNawigacje ()
{
return Nawigacja;
}
bool MaSkorzanaTapicerke ()
{
return SkorzanaTapicerka;
}
void WyswietlStan()
{
Samochod::WyswietlStan();
printf("Tapicerka ze skory %i\n", MaSkorzanaTapicerke());
printf("Nawigacja %i\n", MaNawigacje());
}
};
class Ciezarowka :public Samochod
{
private:
int Ladownosc;
int Zaladowanie;
public:
Ciezarowka(int pojemnosc, int paliwo, int ladownosc)
: Samochod(pojemnosc, paliwo),
Ladownosc(ladownosc), Zaladowanie(0) {}
//metody
bool ZaladujLadunek(int wagaladunku)
{
if (Zaladowanie + wagaladunku > Ladownosc) return false;
Zaladowanie = Zaladowanie + wagaladunku; return true;
}
int Ladunek()
{
return Zaladowanie;
}
void Rozladuj()
{
Zaladowanie = 0;
}
bool CzyLadowny()
{
return true;
}
void WyswietlStan()
{
Samochod::WyswietlStan();
printf("Ladownosc: %d \n", Ladownosc);
printf("Zaladowanie: %d \n", Zaladowanie);
}
};
int main()
{
//SamochodMiejski sm(2000, 50, zielony);
//sm.PobierzKolor();
//sm.WyswietlStan();
Ciezarowka c(2000, 200, 500);
c.ZaladujLadunek(50);
c.WyswietlStan();
_getch();
return 0;
}
Co zmienić, w klasie SamochodMiejski lub w intstrukcji main, by móc za pomocą metody PobierzKolor() zwracać nazwę jakiegoś koloru?
Wartość ma być ustalana parametrem konstruktora, a metoda PobierzKolor() ma zwracać nazwę koloru.
Ostrzeżenie : „printf”: ciąg formatu „%c” wymaga argumentu typu „int”, ale argument 1 ze zmienną liczbą argumentów ma typ „const char *”
Dziękuję z góry za pomoc.