fork download
  1.  
  2. #ifndef __FIGURES_H
  3. #define __FIGURES_H
  4.  
  5. #include <vector>
  6. #include <iostream>
  7.  
  8.  
  9.  
  10. //абстрактный базовый класс
  11. class Figure{
  12. protected:
  13. int color; //общие свойства для всех потомков
  14. public:
  15. Figure(int color) :
  16. color(color) //список инициализации полей
  17. {}
  18. //чисто виртуальная функция вычисления площади
  19. virtual double place() const = 0;
  20. //чисто виртуальная функция вычисления периметра
  21. virtual double perimetr() const = 0;
  22. //чисто виртуальная функция для вывода данных о фигуре
  23. virtual void output() const = 0;
  24. //вложенная структура для координат точки
  25. struct Point{
  26. int x;
  27. int y;
  28. Point(int x, int y):
  29. x(x), y(y)
  30. {}
  31. };
  32.  
  33. };
  34.  
  35.  
  36. class Circle: public Figure{
  37. Point center; //координаты центра
  38. int rad; //радиус
  39. public:
  40. Circle(Point center, int rad, int color);
  41. //перегружаем виртуальную функцию
  42. virtual double place() const;
  43. virtual double perimetr() const;
  44. virtual void output() const;
  45. };
  46.  
  47.  
  48. class Triangle : public Figure{
  49. Point p1, p2, p3; //координаты вершин
  50. public:
  51. Triangle(Point p1, Point p2, Point p3, int color);
  52. //перегружаем виртуальную функцию
  53. virtual double place() const;
  54. virtual double perimetr() const;
  55. virtual void output() const;
  56. };
  57.  
  58. class Polygon : public Figure {
  59. std::vector<Figure::Point> vPolygon;//координаты вершин
  60. public:
  61. Polygon(std::vector<Figure::Point> vPolygon, int color);
  62. //перегружаем виртуальную функцию
  63. virtual double place() const;
  64. virtual double perimetr() const;
  65. virtual void output() const;
  66. };
  67.  
  68. std::ostream & operator << (std::ostream & os, const Figure &f);
  69.  
  70. #endif
  71.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/lib/gcc/i486-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty