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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2010, 18:50   #1
mrLee
 
Регистрация: 15.10.2009
Сообщений: 4
По умолчанию Проблема с перегрузкой операторов, не могу разобраться

Народ помогите пожалуйста.
Вчера я на практике по ООП(язык С++) писал 2 проги по памяти - это перегрузка"+" и перегрузка"==". Завтра защита практики.
Мне задали на дз такую гадость:
Однонаправленный список с элементами типа char. Дополнительно перегрузить следующие операции:
“[]” -доступ к элементу в заданной позиции,например:
int i; char c;
list L;
c=L[i];
“+” -объединить два списка;
“!=” проверка на неравенство.
Я блин ничего въехать не могу. Кидаю коды прошлых двух исходников:
Перегрузка"+"
#include <iostream.h>
#include <conio.h>
class Coord
{

int x, y;
public:
Coord(){х = 0; у = 0;}
Coord (int _x, int _y) {х = _х; у = _y;}
void GetCoord(int& _x, int& _y)
{_x = х; _y = y;}
Coord operator+( Coord& ob) ;
};
Coord
Coord:: operator+( Coord& ob)
{
Coord tempOb;
tempOb.x = x + ob.x;
tempOb. y = y + ob. y;
return tempOb;
}
main()
{ int x,y;
Coord PtA(10,20), PtB(3,8), PtC;
//Вызов перегруженного оператора сложения
PtC = PtA + PtB;
PtC.GetCoord(x,y) ;
cout << "PtC.x =" <<x<< " PtC.y ==" << y << endl;
getch();
}

Перегрузка"==":

#include <iostream.h>
#include <conio.h>
class Coord {
int x, y;
public:
Coord (int _x, int _y) {x = _x; y == _y;}
Coord(){x = 0; ó = 0;}
void GetCoord(int& _x, int& _y) {_x = x; _y = y; }
bool operator= =(Coord ob);
bool operator&&(Coord ob) ;
};
bool Coord:: operator= =(Coord ob)
{ return (x = = ob.x && y = = ob.y) ;
}
int main()
{ Coord Pt1(10,20), Pt2(10,25), Pt3(10,20), Pt4;
if (Ptl= =Pt2) cout << "Pt1 равна Pt2\n"; else cout << "Pt1 не равна Pt2\n";
if (Pt1= =Pt3) cout << "Pt1 равна Pt3\n" ; else cout << "Pt1 не равна Pt3\n";
getch();
}

Помогите плз))) я просто не знаю как это сделать, я понимаю что нужно использовать "strcmp", раз там "char", но не знаю как туда это впихнуть...(

Последний раз редактировалось mrLee; 29.01.2010 в 19:16.
mrLee вне форума Ответить с цитированием
Старый 30.01.2010, 00:23   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

делал на C# перегрузку математических операций (+, -, *, /) для работы с дробями как с объектами, если понимаешь С++, то может тебе чем-то и поможет
на С++ не помню точно, как перегрузить, над будет в лиитературу глянуть.

А что в гугле ничего нет про это? поищи, стопудов есть подробно как и что делать
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с перегрузкой операторов, не могу разобраться mrLee Общие вопросы C/C++ 0 29.01.2010 18:45
Не могу разобраться Zmaxer Помощь студентам 24 10.10.2009 18:52
не могу разобраться Инспектор ГУЛ Свободное общение 7 20.09.2009 09:29
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15