У меня ошибка в строке:
klientPracownik obiekt4(4, "prezes", 99);
"4" подчеркнуто и вызывает ошибку:
Ошибка C2248: 'klientPracownik :: klientPracownik': не может получить доступ к закрытому члену, объявленному в классе 'klientPracownik'. Я понятия не имею, почему, потому что каждый из них является общедоступным. Пожалуйста, помогите мне. Вот код, я удалил все, что неважно:
#include <iostream>
using namespace std;
class osoba{
public:
int id;
osoba(){}
osoba(int ide) :id(ide) {}
virtual ~osoba();
};
class klient : virtual public osoba{
public:
float rabat;
klient::klient(float rab);
};
klient::klient(float rab) : rabat(rab){}
class pracownik : virtual public osoba{
public:
char* stanowisko;
pracownik::pracownik(char* stan);
};
pracownik::pracownik(char * stan) : stanowisko(stan){}
class klientPracownik :public pracownik, public klient {
klientPracownik(int ide, char* stan, float rabat);
~klientPracownik();
};
klientPracownik::klientPracownik(int ide, char* stan, float rabat) :osoba(ide), pracownik(stan), klient(rabat) {}
klientPracownik::~klientPracownik(){}
int main(){
klientPracownik obiekt4(4, "prezes", 99);
return 0;
}
В вашем классе klientPracownik
отсутствует public:
- что означает, что все его члены/методы являются частными (даже его конструктор).