Dziedziczenie w C++ - prosty program (codereview)

0

Witam, postanowiłem napisać prosty program z dziedziczeniem by poćwiczyć na labolatoria, jednak mam z nim problem

#include "stdafx.h"
#include <string.h>
#include <conio.h>
 
class osoba
{
private:
	int wiek;
	char imie[30];
public:
	osoba (const int _wiek, const char *_imie);
	void wyswietl ()
	{
		printf("\n wiek osoby: %d imie %s",wiek,imie);
	}

	
};


class pracownik : public osoba
{
private:
	char nazwisko[30];
public:
	void wyswietl ()
	{
		printf("\n imie: %s",imie);
		printf("\n nazwisko: %s",nazwisko);
		printf("\n wiek: %d",wiek);
	}
		pracownik (const int _wiek, const char *_imie, const char *_nazwisko);

};

int main()

{
	return 0;
}

otzymuje błąd że klasa pochodna nie ma dostępu do pola prywatnego z klasy osoba.
Pewnie popełniam jakiś podstawowy błąd, w jaki sposób powinno to wyglądać poprawnie?
I z góry przepraszam za ewentualne błędy, dopiero się zarejestrowałem.

poprawienie znaczników kolorujących składnię - Furious Programming

0

Klasa pochodna nie ma dostepu do elementow prywatnych klasy bazowej.

#include <iostream>
using namespace std;

class Foo {
private:
	int var;
	
protected:
	int getVar() const { return var; }
};

class Bar : public Foo {
public:
	void displ() const {
		cout << getVar();
	}
};

int main() {
	Bar b;
	b.displ();
	return 0;
}
0

Możesz użyć gettery jak wyżej lub zrobić część składowych w sekcji protected:

1 użytkowników online, w tym zalogowanych: 0, gości: 1