Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1.  
  2. #include "pch.h"
  3. #include <iostream>
  4. #include "locale.h"
  5. #include "Base.h"
  6. #include "Squar.h"
  7. #include "Circle.h"
  8. using namespace std;
  9. int main()
  10. {
  11.     setlocale(LC_ALL, "RUS");
  12.     char sname[30];
  13.     strcpy_s(sname, "Circle");
  14.    
  15.     Circle C1(3, sname),C2;
  16.     cout << C1.get_name() << endl << "S= " << C1.S() << endl;
  17.     strcpy_s(sname, "Squar 1");
  18.     Squar S1(3, sname),S2;
  19.     cout << S1.get_name() <<endl<< "S= " << S1.S() << endl;
  20.     strcpy_s(sname, "Squar 2");
  21.     S2 = S1;
  22.     S2.set_name(sname);
  23.     cout << S2.get_name() << endl << "S= " << S2.S()<<endl;
  24.  
  25.     Base B, B1;
  26.     //ранний полиморфизм
  27.     B = C1;
  28.     cout << B.get_name() << "S= " << B.S() << endl;
  29.     B = S1;
  30.     cout << B.get_name() << "S= " << B.S() << endl;
  31.  
  32.     //поздний полиморфизм (указатель на базовый класс)
  33.     Base *ptrBase;
  34.     ptrBase = &C1;
  35.     cout << (*ptrBase).get_name() << "S= " << (*ptrBase).S() << endl;
  36.     ptrBase = &S1;
  37.     cout << (*ptrBase).get_name() << "S= " << (*ptrBase).S() << endl;
  38.  
  39.  
  40.     Base *Sharp[3];
  41.     Sharp[0] = &C1;
  42.     Sharp[1] = &S1;
  43.     Sharp[2] = &S2;
  44.     for (int i = 0; i < 3; i++) cout << (*Sharp[i]).get_name() << "S= " << (*Sharp[i]).S() << endl;
  45.  
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement