|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.01.2010, 18:50 | #1 |
Регистрация: 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. |
30.01.2010, 00:23 | #2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
делал на C# перегрузку математических операций (+, -, *, /) для работы с дробями как с объектами, если понимаешь С++, то может тебе чем-то и поможет
на С++ не помню точно, как перегрузить, над будет в лиитературу глянуть. А что в гугле ничего нет про это? поищи, стопудов есть подробно как и что делать
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с перегрузкой операторов, не могу разобраться | 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 |