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. void print(){cout<<"a="<<a<<" b=c="<<c<<endl; }
  20. ~Isosceles(){}//cout<<"destructor Iso"<<endl;}
  21. };
  22. class Equal: public Isosceles{
  23. public:
  24. Equal(double x):Isosceles(x, x){}
  25. using Isosceles::print;
  26. void print(){cout<<"a=b=c="<<a<<endl;}
  27. ~Equal(){}
  28. };
  29.  
  30. // int Triangle::count=0;
  31. int main(){
  32. Triangle tr(10,1,1),tr1(1,2,3),tr2(5,6,7);
  33. Isosceles is(2,5),is1(1,2),is2(3,4);
  34. Equal eq(1),eq1(2),eq2(3);
  35. is.print();
  36. is1.print(',','g');
  37. is2.print(',');
  38. eq.print();
  39. eq1.print(',');
  40. eq2.print(',','p');
  41. tr.print();
  42. tr1.print(',');
  43. tr2.print(',','c');
  44. // cout<<" "<<is.count<<" "<<t1.count<<endl;
  45. tr.perim();
  46. cout<<is.perim()<<endl;
  47. // cout<<Triangle::count;
  48.  
  49. }
  50.  
  51. ///Показати статичні поля int Triangle::count=0;
  52.  
  53. //Завдання 1. Створити клас рівносторонній трикутник Equal спдкоємець класу рівнобедрений трикутник
  54. //з відповідним конструктором. Перегрузити метод print() без параметрів.
  55. //Завдання 2. Створити три трикутники різних типів, викликати для них методи print з параметрами та без.
  56. // Задвання 3. Створити метод пошуку периметра, чи потрібно його перегружати в доірніх класах?
  57. //Викликати метод для об'єктів
  58. //Завдання 4. Викоритовуючи клас Equal зробити відправку задачі контесту на eolymp Рівносторонній трикутник
  59.  
Success #stdin #stdout 0s 5316KB
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