#include <iostream>
using namespace std;
class Pracownik
{public:
string imie;
string nazwisko;
private:
int pensja;
protected:
bool aktywny=true;
void wpisz(string imie,string nazwisko,int pensja);
void pokaz();
void porownaj(Pracownik a);
void podwyzka(int podw);
};
void Pracownik::podwyzka(int podw)
{
pensja+=podw;
cout<<"Pensja "<<imie<<" po podwyzce: "<<pensja<<endl;
}
void Pracownik::porownaj(Pracownik a)
{
if(pensja>a.pensja)
cout<<"Pensja "<<a.imie<<" jest mniejsza od pensji "<<imie<<endl;
else if (pensja<a.pensja)
cout<<"Pensja "<<a.imie<<" jest większa od pensji"<<imie <<endl;
else
cout<<"Pensja pracowników "<<a.imie<<" oraz "<<imie <<" jest równa!"<<endl;
}
void Pracownik::pokaz()
{
cout<<imie<<endl;
cout<<nazwisko<<endl;
cout<<pensja<<endl;
if(aktywny=true)
cout<<"aktywny"<<endl;
else
cout<<"nieaktywny"<<endl;
}
void Pracownik::wpisz(string a,string b,int c)
{
imie=a;
nazwisko=b;
pensja=c;
}
int main()
{
Pracownik prac1;
Pracownik prac2;
Pracownik prac3;
Pracownik prac4;
prac1.wpisz("Jan","Kowalski", 4000);
prac2.wpisz("Tomasz","Nowak", 3500);
prac3.wpisz("Anna","Wiśniewska", 4000);
prac4.wpisz("Michał","Kwiatkowski",7500);
prac1.pokaz();
prac2.pokaz();
prac3.pokaz();
prac4.pokaz();
prac1.porownaj(prac2);
prac2.porownaj(prac3);
prac1.porownaj(prac3);
prac1.podwyzka(600);
prac1.pokaz();
}
Cześć, dlaczego np. funkcja wpisz nie może korzystać ze zmiennej pod private/protected? Dopiero zaczynam z programowaniem obiektowym i z tego co czytałem, jeśli zadeklaruję funkcję w klasie to ta funkcja powinna mieć dostęp do wszystkich zmiennych klasy (nawet private/protected). Niestety tutaj to tak nie działa.