Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Перегрузка операторов.






    Форма для перегрузки операторов:

    Объявление перегруженных операторов осуществляется так же, как и функций. Используется специальное слово: operator, за которым следует сам перегружаемый оператор. В функциях с одним операндом параметры не задаются

    Const класс & класс:: operator …();

    Перегрузка оператора с двумя операндами требует наличия параметров (константные ссылки на объекты этих классов):

    Класс класс:: operator + (const класс & rhs) — заголовок и след. Описание

    Класс operator + (const класс &)

    Рекомендации:

    § перегружайте операторы. Если код программы после этого станет чётче и понятнее.

    § Возвращайте объекты класса из перегруженных операторов.

    § Не увлекайтесь созданием перегруженных операторов, выполняющих несвойственные им функции.

     

    #include< iostream.h>

    Class V_3d

    {

    Double x, y, z;

    public:

    V_3d(const V_3d & v1); // конструктор -копировщик

    V_3d(double x1=0, double y1=0, double z1=0):

    // конструктор со значениями по умолчанию

    x(x1), y(y1), z(z1) {}; // инициация переменных-членов

    void print(); // печать объекта класса

    V_3d operator +(V_3d t); // перегрузка оператора +

    V_3d operator =(V_3d t); // перегрузка оператора =

    friend ostream & operator < < (ostream & stream, V_3d t);

    friend istream & operator > > (istream & stream, V_3d & t );

    double mod(); // функция модуля

    };


    V_3d:: V_3d(const V_3d & v1)

    { x=v1.x;

    y=v1.y;

    z=v1.z;

    }

    void V_3d:: print()

    {

    cout< < " x=" < < x< < " y=" < < y< < " z=" < < z< < " \n";

    }

    V_3d V_3d:: operator +(V_3d t)

    {

    V_3d c;

    c.x=x+t.x; c.y=y+t.y; c.z=z+t.z;

    Return c;

    }

    V_3d V_3d:: operator =(V_3d t)

    {

    x=t.x; y=t.y; z=t.z;

    return *this;

    }

    ostream & operator < < (ostream & stream, V_3d t)

    {

    stream< < " x=" < < t.x< < ", ";

    stream< < " y=" < < t.y< < ", ";

    stream< < " z=" < < t.z< < " \n";

    Return stream;

    }

    istream & operator > > (istream & stream, V_3d & t)

    {

    stream > > t.x> > t.y> > t.z;

    Return stream;

    }

    double V_3d:: mod()

    {

    return x*x+y*y+z*z;

    }

    Void main(void)

    {

    V_3d a;

    V_3d b(4, 7, 10);

    V_3d c(b);

    cout < < " координаты вектора b: \n";

    cout < < b;

    cout < < " координаты вектора c: \n";

    C.print();

    cout < < " введите координаты вектора a: \n";

    cin > > a;

    cout < < " координаты вектора а: \n";

    cout < < a;

    c=a+b;

    cout < < " координаты вектора a+b \n";

    C.print();

    }

    Результат работы программы:

    координаты вектора b:

    x=4, y=7, z=10

    координаты вектора c:

    x=4 y=7 z=10

    введите координаты вектора a:

    -1 3 6

    координаты вектора а:

    x=-1, y=3, z=6

    координаты вектора a+b

    x=3 y=10 z=16







    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.