fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. class Triangle{
  5. protected:
  6. double a,b,c;
  7. public:
  8. Triangle(double x,double y,double z):a(x),b(y),c(z){}//cout<<"constructor Triangle"<<endl;}
  9. double perim(){return a+b+c;}
  10. void print(){cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;}
  11. void print(char ch){cout<<"a="<<a<<ch<<" b="<<b<<ch<<" c="<<c<<endl;}
  12. void print(char ch,char ch1){cout<<"a="<<a<<ch<<" b="<<b<<ch<<" c="<<c<<endl;}
  13. ~Triangle(){}//cout<<"destructor Triangle"<<endl; }
  14. };
  15. class Isosceles:public Triangle{
  16. public:
  17. Isosceles(double x,double y):Triangle(x,y,y){ }//cout<<"constructor Iso"<<endl; }
  18. using Triangle::print;
  19. // using Triangle::perim;
  20. void print(){cout<<"a="<<a<<" b=c="<<c<<endl; }
  21. ~Isosceles(){}//cout<<"destructor Iso"<<endl;}
  22. };
  23. class Equal: public Isosceles{
  24. public:
  25. Equal(double x):Isosceles(x, x){}
  26. using Isosceles::print;
  27. // using Triangle::perim;
  28. void print(){cout<<"a=b=c="<<a<<endl;}
  29. ~Equal(){}
  30. };
  31.  
  32. // int Triangle::count=0;
  33. int main(){
  34. Triangle tr(10,1,1),tr1(1,2,3),tr2(5,6,7);
  35. Isosceles is(2,5),is1(1,2),is2(3,4);
  36. Equal eq(1),eq1(2),eq2(3);
  37. is.print();
  38. is1.print(',','g');
  39. is2.print(',');
  40. eq.print();
  41. eq1.print(',');
  42. eq2.print(',','p');
  43. tr.print();
  44. tr1.print(',');
  45. tr2.print(',','c');
  46. // cout<<" "<<is.count<<" "<<t1.count<<endl;
  47. cout<<tr.perim()<<endl;
  48. cout<<tr1.perim()<<endl;
  49. cout<<is.perim()<<endl;
  50. cout<<is1.perim()<<endl;
  51. cout<<eq.perim()<<endl;
  52. cout<<eq1.perim()<<endl;
  53. // cout<<Triangle::count;
  54.  
  55. }
  56.  
  57. ///Показати статичні поля int Triangle::count=0;
  58.  
  59. //Завдання 1. Створити клас рівносторонній трикутник Equal спдкоємець класу рівнобедрений трикутник
  60. //з відповідним конструктором. Перегрузити метод print() без параметрів.
  61. //Завдання 2. Створити три трикутники різних типів, викликати для них методи print з параметрами та без.
  62. // Задвання 3. Створити метод пошуку периметра, чи потрібно його перегружати в доірніх класах?
  63. //Викликати метод для об'єктів
  64. //Завдання 4. Викоритовуючи клас Equal зробити відправку задачі контесту на eolymp Рівносторонній трикутник
  65.  
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
a=2 b=c=5
a=1, b=2, c=2
a=3, b=4, c=4
a=b=c=1
a=2, b=2, c=2
a=3, b=3, c=3
a=10 b=1 c=1
a=1, b=2, c=3
a=5, b=6, c=7
12
6
12
5
3
6