🚬
C++ Learning
  • 📚Ссылки/медиа
  • 💼Создание проекта. Основы
  • 🔙Escape последовательности
  • 🔥Типы данных
  • 🛡️Переменные
  • 🔒Константы Const
  • 📥Ввод данных в консоль cin. Приведение типов.
    • ✅Задача с операторами
  • 🔖Инкремент и Декремент
  • ♻️Сокращенные арифметические действия
  • ⚖️Логические Операции
  • ‼️if - else
    • ✅Проверка на четность
  • 3️⃣Тернарный оператор
  • 🔀Switch
    • ✅Простой калькулятор на switch
  • 🔄Цикл While
    • ✅Линия из символов
    • ✅Нахождение всех целых нечетных чисел
  • ♾️Цикл For
  • 🛑Оператор break
  • ⏭️Оператор continue
  • 🦽Оператор goto
  • 🗃️Вложенный Цикл / Вложенная конструкция
    • ✅Задача с прямоугольником
  • 📦Массив
    • ✅Нахождение минимального элемента массива
  • 📏функция sizeof()
  • 🎲функция rand()
    • ✅Заполнение массива случайными неповторяющимися числами
  • 🗓️Двумерный массив
    • ✅Заполнение двумерного массива случайными неповторяющимися числами
  • ⚙️Функции
    • 🔩Прототипы функции
    • 🔩Параметры по умолчанию
    • 🔩Перегрузка функций
    • 🔩Шаблоны функции
    • ✅Игра "угадай число"
  • 👁️Область видимости
  • 📚Стек
  • 🪞Рекурсия
  • 👉Указатели
    • *️⃣Разыменование
    • 📦Массив это указатель
    • 🔩Передача параметров функции через указатели
    • ✅Обмен значениями переменных с помощью указателей
  • 📎Ссылки (reference)
    • ✅Обмен значениями между переменными
    • ✅Шаблонная функция обмена значениями
  • 💾new, delete. Выделение / Удаление памяти
    • ⭕NULL / nullptr
  • 📦Динамический массив
    • 💊Двумерный динамический массив
    • 💿Копирование динамического массива
    • Управление массивом. Добавление элемента (push-back)
    • Управление массивом. Удаление элемента (pop-back)
  • 📝Строки
    • 🧩string / конкатенация строк
    • 📏функция strlen()
    • ✅Написать функцию strlen() самому
  • 📩Указатель на функцию
  • 💽Препроцессор #define
    • Макрос
    • Условная компиляция #ifdef #endif #else #ifndef #if
  • 🌐ООП
  • Class / класс, объект класса
    • Методы класса
    • Модификаторы доступа класса. ИНКАПСУЛЯЦИЯ
    • Геттеры и Сеттеры. ИНКАПСУЛЯЦИЯ.
    • Конструктор класса
      • Перегрузка конструктора класса
    • Деструктор класса
    • this / конструктор копирования
    • operator / Перегрузка операторов
      • Перегрузка операторов сравнения ><
      • Перегрузка операторов сложения, вычитания +-
      • Пример класса с конструкторами и перегрузками
  • 😎Friend / дружественные функции, классы
    • ✅Обмен значениями между объектами класса Swap
    • Дружественный метод класса.
  • Методы вне класса
  • ⁉️Ошибки
    • ❌Ошибка с моментальным закрытием консоли из .exe
  • LEETCODE
    • 🟩1.TwoSum
    • 🟩1108. Defanging an IP Address
    • 🟩2011. Final Value of Variable After Performing Operations
    • 🟩9. Palindrome Number
Powered by GitBook
On this page
  1. Class / класс, объект класса
  2. operator / Перегрузка операторов

Пример класса с конструкторами и перегрузками

class coordinate
{
private: 
    int x;
    int y;


public:

    /* ---КОНСТРУКТОРЫ--- */

    coordinate() // конструктор по умолчанию
    {
        x = 0;
        y = 0;
    }

    coordinate(int x, int y) // перегрузка конструктора
    {
        this->x = x;
        this->y = y;
    }

    coordinate(const coordinate& other) // конструктор копирования
    {
        this->x = other.x;
        this->y = other.y;
    }

    ~coordinate(){};  // деструктор


    /* ---МЕТОДЫ--- */

    void SetX(int value) // сеттеры
    {
        x = value;
    }
    void SetY(int value)
    {
        y = value;
    }

    void GetX() // геттеры
    {
        cout << "x = " << x << endl;
    }
    void GetY()
    {
        cout << "y = " << y << endl;
    }


    /* ---ПЕРЕГРУЗКА ОПЕРАТОРОВ--- */

    coordinate& operator=(const coordinate& other) // перегрузка равенства =
    {
        if (this != &other) {
            
            this->x = other.x;
            this->y = other.y;
        }
        return *this;
    }


    bool operator ==(const coordinate& other) // перегрузка ==
    {
        if (this->x == other.x && this->y == other.y)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    bool operator !=(const coordinate& other) // перегрузка !=
    {
        if (this->x != other.x || this->y != other.y)
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    bool operator >(const coordinate &other) // перегрузка >
    {
        if (this->x > other.x && this->y > other.y)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    bool operator <(const coordinate& other) // перегрузка <
    {
        if (this->x < other.x && this->y < other.y)
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    coordinate operator +(const coordinate& other) // перегрузка +
    {
        coordinate temp;
        temp.x = this->x + other.x;
        temp.y = this->y + other.y;
        return temp;
    }
    coordinate operator -(const coordinate& other) // перегрузка -
    {   
        coordinate temp;
        temp.x = this->x - other.x;
        temp.y = this->y - other.y;
        return temp;
    }


    coordinate& operator ++()  // перегрузка префиксного инкремента ++x
    {
        this->x++;
        this->y++;
        return *this;
    }
    coordinate& operator ++(int)  // перегрузка постфиксного инкремента x++
    {   
        coordinate temp(*this);
        this->x++;
        this->y++;

        return temp;
    }
    coordinate& operator --()  // перегрузка префиксного декремента --x
    {
        this->x--;
        this->y--;

        return *this;
    }
    coordinate& operator --(int)  // перегрузка постфиксного декремента x--
    {
        coordinate temp(*this);
        this->x--;
        this->y--;

        return temp;
    }


};

PreviousПерегрузка операторов сложения, вычитания +-NextFriend / дружественные функции, классы

Last updated 2 months ago