-
Notifications
You must be signed in to change notification settings - Fork 1
/
Point.hpp
73 lines (70 loc) · 2.16 KB
/
Point.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#pragma once
#include <string>
#include <utility>
#include <fstream>
/*!
\file
@class Point
Класс, описывающий точки. Содержит конструкторы,-get и -set методы,
перегруженные операторы ввода/вывода.
*/
class Point{
private:
//!Название точки
std::string name;
//!Координаты точки
std::pair<float,float> coord;
//!Спецификация точки
std::string specifier;
public:
/*!
Конструктор по умолчанию
*/
Point() {}
/*!
Конструктор,предназначенный для инициализации объекта
*/
Point(std::string _name, std::pair<float,float> _coord)
: name(_name), coord(_coord) {}
/*!
Метод,определяющий спецификацию точки
*/
void defineSpecifier();
/*!
Метод,предназначенный для инициализации названия точки
\param [in] _name
*/
void setName(std::string _name);
/*!
Метод,предназначенный для инициализации координат
\param [in] _coord
*/
void setCoord(std::pair<float, float> _coord);
/*!
Метод,возвращающий название точки
\return name
*/
std::string getName();
/*!
Метод,возвращающий координаты
\return coord
*/
std::pair<float,float> getCoord();
/*!
Метод,возвращающий спецификацию
\return specifier
*/
std::string getSpecifier();
/*!
Перегруженный оператор для вывода данных
\param [out] &out Ссылка на поток вывода
\param [in] &point Ссылка на класс Point
*/
friend std::ostream& operator<< (std::ostream& out, Point& point);
/*!
Перегруженный оператор для ввода данных
\param [in] &in Ссылка на поток ввода
\param [out] &point Ссылка на класс Point
*/
friend std::istream& operator>> (std::istream& in, Point& point);
};