Czwarty program do tematu Dostęp do składników - Folder Dzied5
#include <conio.h> //do getch()
#include <stdio.h> //do printf()
class podstawowa //definiujemy klasę podstawową
{private: //składniki prywatne
int skl_priv; //cecha - liczba całkowita
protected: //składniki protected
int skl_prot1; //cecha - liczba całkowita
public: //składniki publiczne
int skl_publ1; //cecha - liczba całkowita
void funkcja_publ() { printf("\nFUNKCJA_PUBL"); } //jakaś prosta metoda
void wpisz(int s1, int s2, int s3) { skl_priv=s1; skl_prot1=s2; skl_publ1=s3; }
//ta metoda wpisze wartości do wszystkich cech
void wypisz()
{ printf("\n\tskl_priv: %6d",skl_priv);
printf("\n\tskl_prot1: %5d",skl_prot1);
printf("\n\tskl_publ1: %5d",skl_publ1);} //a ta metoda wypisze dane na ekran
}; //koniec definicji klasy podstawowa
class pochodna :private podstawowa //Definiujemy klasę potomną klasy podstawowa.
//Dziedziczenie jest private - wszystkie odziedziczone składniki będą więc private.
{public: //składniki publiczne
podstawowa::funkcja_publ;
podstawowa::wpisz;
podstawowa::wypisz; //to są deklaracje dostępu
//składniki dziedziczone jako private są znów public
}; //koniec definicji klasy pochodna
main() //funkcja główna main
{ printf("\nOBIEKT KLASY PODSTAWOWA"); //komunikat
podstawowa obiekt1; //deklarujemy obiekt klasy podstawowa
obiekt1.wpisz(10,20,30);
obiekt1.wypisz(); //wywołujemy publiczne metody na jego rzecz
printf("\n");
obiekt1.skl_publ1=50; //tu celowo wpisujemy wartość do publicznej cechy
obiekt1.wypisz(); //i jeszcze raz wypis na ekran
printf("\n\nOBIEKT KLASY POCHODNA"); //komunikat
pochodna obiekt2; //deklarujemy obiekt klasy pochodna
obiekt2.funkcja_publ(); //dzięki deklaracji dostępu możemy się odwołać do tej metody
obiekt2.wpisz(30,50,800);
obiekt2.wypisz(); //podobnie tutaj - i te metody miały deklaracje dostępu
//obiekt2.skl_publ1=10;
//A ten składnik takiej deklaracji nie miał.
//Jest on private w klasie pochodna, bo takie było dziedziczenie.
getch();
};