|
Программирование >> Расширенная версия языка c++
Приложение В. Ответы на вопросы и решения упрJажнений 549 coord temp; temp.x 1,х * i; temp, у = оЫ.у * i; return temp; Перегрузка оператора вторым способом coord operator* (int i, coord оЬ2) coord temp; temp.x = ob2.x * i; temp . у 2 . у * i ; return temp; coord int X, y; io2 1 * 2; ob * int o2.get xy(x, y) ; cou (ol * 2) , у \n ; o2 = 3 * ol; int * ob o2.get xy (x, y) ? cou (3 * ol) у Nn ; return 3. Благодаря использованию дружественные -функций, стало возможным получить, в качестве левого операнда, встроенный тип данных. При использовании функций-членов, левый операнд должен быть объектом класса, для которого определяется оператор. 4. /* Перегрузка оператора оттельно класса coord с использованием дружественных функций #include <iostream> using namespace std; class coord { int x, у; значения координат public: coord О { x = 0; у = 0; } 550 ,. .. ... Самоучитель С++ coorddnt i, int j) { x = i; у = j; } void get xy(int si, int sj) { i = x; j = y; } префиксная форма friend coord operator- [coord sob) ; . постфиксная форма friend coord operator- (coord Sob, int notused) ; Перегрузка префиксной формы оператора - для класса coord с использованием дружественной функции coord operator- (coorci t,vjjj} ( ob.x-; ob.y -; . . return Перегрузка постфиксной формы оператора - для класса coord с использованием функции coord operator- (coord Sob, int notused) ob.x - ; ob.y-; return ob; . } \ * coord ol(10, 10) ; int x, y; ... декремент объекта ol.get xy (X,y) ; cou (--ol) x , у \n ; декремент объекта ol ol.get xy (X, y) ; . cou Mol-) x , у \n ; return 1. ttinclude <iostream> #include <c,3tdlib> using namespace std; Приложение В. Ответы на вопросы ения упражнений 551 class dynarray { int *р; . ; int size; public: dynarray(int s); int get(int i) ; dynarray uoperator={dynarray SOb) ; Конструктор p = new int[sj; if(!p) { cou Обка выделения памяти\п ; exit(l) ; Size s; Запоминание элемента int i) if (i<0 I I i>=size) ( cou Обка нарушения границ массива !\n ; exit(l); return Получение элемента int i) if (i<0 I I i>=si ( cou << Обка нарушения границ массива !\n ; exit(l); return Перегрузка оператора - для класса dynarray dynarrayfidynarray::operator(dynarrayiob) int i; .;.- .
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |