Задача: Трикутники
Реалізувати клас трикутників за зразком сигнатури:
Вивід трикутників ABC у вигляді (1;2)(1;2)(3;5), де A, B, C — відповідні точки.
Вивід трикутників ABC у вигляді (1;2)(1;2)(3;5), де A, B, C — відповідні точки.
#include <iostream>
using namespace std;
class Point
{
private:
double _x;
double _y;
public:
Point (const double &x = 0, const double &y = 0);
Point (const Point &);
~Point();
Point &operator=(const Point &);
double &x();
double &y();
const double &x()const;
const double &y()const;
const double distance(const Point &p) const;
};
ostream &operator<<(ostream&, const Point &);
const Point operator+ (const Point &, const Point &);
Point &operator+=(Point &, const Point &);
const Point operator- (const Point &, const Point &);
Point &operator-=(Point &, const Point &);
const bool operator==(const Point &, const Point &);
const bool operator!=(const Point &, const Point &);
class Triangle
{
public:
// Segment of triangle
class Segment
{
private:
// Assignment is forbidden in this implementation
Segment &operator=(const Segment &);
const Point &_a;
const Point &_b;
public:
Segment(const Point &start, const Point &end);
Segment(const Segment &);
~Segment();
const Point &start() const;
const Point &end() const;
const double length() const;
// Найближча відстань від точки до відрізка
const Point nearest(const Point &) const;
};
Triangle(const double &x1=0, const double &y1=0,
const double &x2=1, const double &y2=0,
const double &x3=0, const double &y3=1);
Triangle(const Point &a, const Point &b, const Point &c);
Triangle(const Point &a, const Segment &side);
Triangle (const Triangle &);
~Triangle();
Triangle &operator=(const Triangle &);
const double perimeter() const;
const double area() const;
const Point &apexA() const;
const Point &apexB() const;
const Point &apexC() const;
const Segment &side_a() const;
const Segment &side_b() const;
const Segment &side_c() const;
const double length_a() const;
const double length_b() const;
const double length_c() const;
const Segment &height_a() const;
const Segment &height_b() const;
const Segment &height_c() const;
private:
Point _a, _b, _c;
};
- 0
- 29 травня 2013, 21:44
- GarfieldUA
- Залишити коментар