dzied5


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();
};



Wyszukiwarka