daily pastebin goal
3%
SHARE
TWEET

Untitled

a guest Oct 13th, 2017 53 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. //  main.cpp
  3. //  Zadach C++
  4. //
  5. //  Created by Хмелев Саша on 20/05/2017.
  6. //  Copyright © 2017 Хмелев Саша. All rights reserved.
  7. //
  8.  
  9. /* Реализовать указанную схему наследования. В базовых классах реализовать функцию print(), которая выводит на консоль имя класса, из которого она вызвана. Написать функцию show(), которая выводит все доступные для этого класса переменные. */
  10.  
  11.  
  12. #include <iostream>
  13. using namespace std;
  14.  
  15. class A1 { // базовый класc
  16. protected:
  17.     int a;
  18. public:
  19.     A1() {
  20.         a = 1;
  21.     }
  22.     void print() {
  23.         cout << "A1";
  24.     }
  25.     void show() {
  26.         cout << a;
  27.     }
  28. };
  29.  
  30. class B1 : virtual public A1 {
  31. protected:
  32.     int b1;
  33. public:
  34.     B1() : A1() {
  35.         b1 = 2;
  36.     }
  37.     void print() {
  38.         cout << "B1";
  39.     }
  40.     void show() {
  41.         cout << b1 << a;
  42.     }
  43. };
  44.  
  45. class B2 : virtual public A1 {
  46. protected:
  47.     int b2;
  48. public:
  49.     B2() : A1() {
  50.         b2 = 3;
  51.     }
  52.     void print() {
  53.         cout << "B2";
  54.     }
  55.     void show() {
  56.         cout << b2 << a;
  57.     }
  58. };
  59.  
  60. class C1 : public B1, public B2 {
  61. protected:
  62.     int c;
  63. public:
  64.     C1() : B1(), B2() {
  65.         c = 4;
  66.     }
  67.     void print() {
  68.         cout << "C1";
  69.     }
  70.     void show() {
  71.         cout << c << b2 << b1 << a;
  72.     }
  73. };
  74.  
  75.  
  76.  
  77. int main() {
  78.     A1 a;
  79.     a.print();
  80.     cout << endl;
  81.     A1 a11;
  82.     a11.show();
  83.     cout << endl;
  84.     cout << endl;
  85.  
  86.     B1 b1;
  87.     b1.print();
  88.     cout << endl;
  89.     B1 b11;
  90.     b11.show();
  91.     cout << endl;
  92.     cout << endl;
  93.     B2 b2;
  94.     b2.print();
  95.     cout << endl;
  96.     B2 b21;
  97.     b21.show();
  98.     cout << endl;
  99.     cout << endl;
  100.    
  101.     C1 c;
  102.     c.print();
  103.     cout << endl;
  104.     C1 c11;
  105.     c11.show();
  106.     cout << endl;
  107.     cout << endl;
  108.  
  109.    
  110.     return 0;
  111. }
RAW Paste Data
Top