Cześć, piszę swój drugi program w obiektówce c++ i mam pewien problem, z którym nie mogę sobie poradzić.
Mam dwie klasy - urządzenie i szlifierka kątowa. Chciałbym, żeby część danych z konstruktora "urządzenia" była dziedziczona w szlifierce i z jakiś względów nie mogę tego zrobić.
Udostępniam kod:
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
class Urzadzenie {
protected:
string firma;
int obroty;
public:
string daj_firme()
{
return firma;
}
int daj_obroty() {
return obroty;
}
void pokaz_opis() {
cout <<"Nazwa firmy: "<< daj_firme() << endl;
cout <<"Ilosc obr. na minute: "<< daj_obroty() << endl;
}
Urzadzenie(string nazwa = "Bosh", int obr = 3500) {
firma = nazwa;
obroty = obr;
}
};
class SzlifierkaKatowa:protected Urzadzenie {
int moc;
int tarcza;
public:
int daj_moc() {
return moc;
}
int daj_tarcze() {
return tarcza;
}
void pokaz_opis() {
Urzadzenie::pokaz_opis();
cout << "Moc: " << daj_moc() <<"W"<< endl;
cout << "Tarcza: " << daj_tarcze() << "mm" << endl;
}
SzlifierkaKatowa(string nazwa="aa", int obr=1, int _moc = 850, int srednica = 140)
:Urzadzenie(nazwa, obr) {
moc = _moc;
tarcza = srednica;
}
};
int main() {
SzlifierkaKatowa p1;
p1.pokaz_opis();
cin.get();
cin.ignore();
return 0;
}
Chodzi mi konkretnie o fragment
SzlifierkaKatowa(string nazwa="aa", int obr=1, int _moc = 850, int srednica = 140)
:Urzadzenie(nazwa, obr) {
moc = _moc;
tarcza = srednica;
W takim układzie po użyciu funkcji pokaz_opis() wyrzuca mi dane
firma="aa"
obr = "1"
Natomiast ja bym chciał, żeby te dane były odziedziczone po klasie urządzenie, czyli Bosh i 3500.
Co robię źle? :/