Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Билет 6
- //операторная функция, перегрузка операторов
- /*
- Язык C++ имеет широкие возможности для перегрузки большинства операторов.
- Перегрузка оператора означает использование оператора для оперирования определенными объектами классов.
- При перегрузке оператора в классе вызывается соответствующая операторная функция (operator function),
- которая выполняет действия, которые касаются данного класса.
- */
- // Класс, который реализует точку на координатной плоскости
- // класс содержит две операторные функции
- class Point {
- private:
- int x, y; // координаты точки
- public:
- // конструкторы класса
- Point() {
- x = 0;
- y = 0;
- }
- Point(int nx, int ny) {
- x = nx;
- y = ny;
- }
- // методы доступа к членам класса
- int GetX(void) const { return x; }
- int GetY(void) const { return y; }
- void SetX(int new_x) { x = new_x; }
- void Set(int new_y) { y = new_y; }
- // перегруженный бинарный оператор '+'
- Point operator+(const Point& pt) {
- // p - временный объект, который создается с помощью конструктора без параметров
- Point p;
- p.x = x + pt.x;
- p.y = y + pt.y;
- return p;
- }
- // перегруженный унарный оператор '-'
- Point operator-(const Point& pt) {
- Point p;
- p.x = x - pt.x;
- p.y = y - pt.y;
- return p;
- }
- };
- #include <iostream>
- int main() {
- // объявление переменных - объектов класса CPoint
- Point P1(3, 4);
- Point P2(5, 7);
- Point P3;
- int x, y; // дополнительные переменные
- // 1. Использование перегруженного бинарного оператора '+'
- P3 = P1 + P2; // объект P1 вызывает операторную функцию
- std::cout << P3.GetX() << ' ' << P3.GetY() << '\n';
- // 2. Использование перегруженного унарного оператора '-'
- P3 = P1 - P2;
- std::cout << P3.GetX() << ' ' << P3.GetY() << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement