Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2010, 23:41   #1
raspberry
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 15
Вопрос Перегрузка операторов



Доброго времени суток!
требуется написать программу с интерфейсом ввиде меню

Задание 1. Унарная операция
Создать класс целых чисел. Определить оператор --, как функцию-член и ++ как дружественную функцию.

Задание 2. Бинарная операция
Создать класс координат. Определить оператор +, как функцию-член и - как дружественную функцию. Сложить и вычесть координаты с друг другом и с числом. Присвоить координаты, сравнить координаты (==, !=).

заранее спасибо!!!
raspberry вне форума Ответить с цитированием
Старый 05.04.2010, 23:42   #2
raspberry
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 15
По умолчанию текст

ВОТ ТЕКСТ ПРОГРАММЫ КОТОРЫЙ НЕ ПОЛУЧАЕТСЯ ПЕРЕДЕЛАТЬ ВВИДЕ МЕНЮ:(

Код:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
class Intgr
 {
  int a;
  int b;
  public:
  Intgr();
  Intgr(int,int);
  Intgr operator++();
  friend Intgr operator--(Intgr&);
  void print();
  ~Intgr();
  };

  Intgr::Intgr()
  { a=0;
    b=0;
  }

  Intgr::Intgr(int x,int y)
   {a=x;
    b=y;
   }

   Intgr::~Intgr()
   { //cout<<"В деструкторе \n";
   //cin.get();
   }

   Intgr Intgr::operator++()
   {a++;
    b++;
    return *this;
    }

   Intgr operator--(Intgr& ob)
   {ob.a--;
    ob.b--;
    return ob;
    }
  void Intgr::print()
    {cout<<a<<' '<<b;
    }

  main()
  {int x,y;
   clrscr();
   cout<<"Введите значение a и b: ";
   cin>>x>>y;
   Intgr ob1(x,y);
   Intgr ob2(x,y);
   ++ob1;
   --ob2;
   cout<<"\nОператор инкремента (функция-член класса): "<<endl;
   ob1.print();
   cout<<"\nОператор декремента (дружественная функция): "<<endl;
   ob2.print();
   cin.get();
   cin.get();
  return 0;
  }








3.2
Код:
#include<iostream.h>
#include<conio.h>
class Coord                           //класс Координаты
{ int x;                              //абсциссы
  int y;                              //ординаты
  public:
  Coord() {x=0;y=0;}                  //конструктор по умолчанию
  Coord(int _x, int _y)               //конструктор с параметрами
  {x=_x;
   y=_y;
   }
   void getCoord(int &_x,int &_y)     //получение координат
   {_x=x;
    _y=y;
    }
   Coord operator+(Coord&ob);         //перегрузка операто-ра(сложение коорд.)
   Coord operator+(int a);            //перегрузка (прибавление числа)
   friend Coord operator-(Coord ob1,Coord ob2); //разность коор-динат
   friend Coord operator-(Coord ob,int a);   //вычитание числа
   void print()                        //вывод координат
   {cout<<x<<" "<<y<<endl;
   }
   int operator==(Coord ob);   //сравнение координат двух точек
   };

 Coord Coord::operator+(Coord&ob)
   {Coord tempOb;
    tempOb.x=x+ob.x;
    tempOb.y=y+ob.y;
    return tempOb;
    }

 Coord Coord::operator+(int a)
   {Coord tempOb;
    tempOb.x=x+a;
    tempOb.y=y+a;
    return tempOb;
    }

    Coord operator-(Coord ob1, Coord ob2)
    { Coord tempOb;
      tempOb.x=ob1.x-ob2.x;
      tempOb.y=ob1.y-ob2.y;
      return tempOb;
    }
    Coord operator-(Coord ob, int b)
    {Coord tempOb;
     tempOb.x=ob.x-b;
     tempOb.y=ob.y-b;
     return tempOb;
     }
    int Coord::operator==(Coord ob)
    {return(x==ob.x&&y==ob.y);
    }

main()
 {
 clrscr();
 int x,y;      //переменные для инициализации объектов
 int a,b;      //числа для сложения и вычитания с коодинатами
  cout<<"Введите значения координат первой точки: "<<endl;
  cin>>x>>y;
  Coord ob1(x,y);
  cout<<"Введите значения координат второй точки: "<<endl;
  cin>>x>>y;
  Coord ob2(x,y);
  if(ob1==ob2)
  cout<<"Координаты введенных точек совпадают"<<endl;
  else
  cout<<"Координаты введенных точек не совпадают: "<<endl;
  Coord ob3;
  Coord ob4;
  ob3=ob2-ob1;
  ob4=ob2+ob1;
  cout<<"Вычитание значений координат первой точки из координат второй: ";
  ob3.print();
  cout<<"Сложение координат первой и второй точки: ";
  ob4.print();
  cout<<"Введите число для прибавления к координатам: "<<endl;
  cin>>a;
  ob3=ob1+a;
  cout<<"Измененные координаты первой точки(прибавление числа): ";
  ob3.print();
  cout<<"Введите число для вычитания из координат: "<<endl;
  cin>>b;
  ob4=ob2-b;
  cout<<"Измененные координаты второй точки (вычитание числа): ";
  ob4.print();
  cin.get();
  cin.get();
  return 0;
  }

Последний раз редактировалось MaTBeu; 06.04.2010 в 14:05.
raspberry вне форума Ответить с цитированием
Старый 06.04.2010, 00:19   #3
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Теги кто вставлять будет?
Carbon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка операторов. Macb3th Общие вопросы C/C++ 5 01.04.2010 21:14
Квадрат - перегрузка операторов ArniLand Общие вопросы C/C++ 1 30.03.2010 23:33
Классы ны С++, перегрузка функций,операторов Shturmovik Помощь студентам 1 04.06.2009 22:58
Перегрузка операторов (С++) Перчитель Помощь студентам 1 03.12.2008 18:46
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15