Advertisement
DescendingBear

Dziedziczenie prywatne

Dec 8th, 2015
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class A
  5. {
  6.     private:
  7.         string priv="prywatny";
  8.     public:
  9.         string pub="publiczny";
  10.     protected:
  11.         string prot="chronione";
  12. };
  13.  
  14. class B: public A   //Klasa B pokazuje, jak dziala dziedziczenie tylko elementow publicznych
  15. {
  16.     private:
  17.     public:
  18.     //  void wypisz1() {cout<<priv<<endl;}    Ta linijka nigdy nie zadziala, nie da sie odziedziczyc prywatnych elementow
  19.         void wypisz2() {cout<<prot<<endl;}
  20.     protected:
  21. };
  22.  
  23. class C: protected A    // Klasa C pokazuje, jak dziala dziedziczenie tylko elementow chronionych
  24. {
  25.     private:
  26.     public:
  27.     //  void wypisz3(){cout<<priv;}        Ta linijka nigdy nie zadziala, nie da sie odziedziczyc prywatnych elementow
  28.         void wypisz4(){cout<<prot<<endl;}
  29.         void wypisz5(){cout<<pub<<endl;}
  30.     protected:
  31.         string prot;
  32.         string pub;
  33. };
  34.  
  35. class D: A  //Klasa D pokazuje najbardziej ogolny typ dziedziczenia
  36. {
  37.     private:
  38.     //    string pub;  takich elementow nie mozna odziedziczyc i "uprywatnic"
  39.     //    string prot;
  40.     public:
  41.     protected:
  42. };
  43.  
  44. int main()
  45. {
  46.     A ob1=A();
  47.     cout<<ob1.pub<<endl;
  48.  
  49.     B ob2=B();
  50.     ob2.wypisz2();
  51.  
  52.     C ob3=C();
  53.     ob3.wypisz4();   //te dwie linijki nie wyrzuca bledu, ale i tez nie zostana wypisane, poniewaz "pub" i "prot" zostaly zabezpieczone w klasie C;
  54.     ob3.wypisz5();
  55.  
  56.     D ob4=D();
  57.  
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement