Прeдефиниране на операции
| Информационни технологии | 2009-12-04 | 56 сваляния |
-
Прeдефиниране на операции
-
Механизмът на предефиниране дава възможност за интерпретация на класовете като нови типове данни.
-
Ако a и b са два обекта от даден клас, то предефинирането на операция + позволява а+b да има смисъл.
-
Операцията може да се предефинира, ако в нея участва поне един обект от някакъв клас.
-
Не могат да се предефинират операциите: . :: * ?
Общ вид на операторна функция:
резултат_обект operator операция(параметри);
(или void)
1. Предефиниране с използване на независима приятелска функция
Общ вид:
class A
{ //член-данни
public:
//декларации на член-функции
friend A operator+(A x,A y);//декларация на приятелска функция
};
A operator+(A x,A y) //дефиниция на приятелска функция
{ //Тяло на приятелската функция }
Пример
#include
class point
{ int x,y;
public:
point(int a=0,int b=0)
{ x=a; y=b; }
void out()
{ cout<<коортдинати:<<x<< <<y<<n;}
friend point operator +(point,point);//декларация на приятелска
}; //ф-я за предефиниране на +
point operator +(point a,point b) //дефиниция на ф-я за
{ point p; //предефиниране на +
p.x=a.x+b.x;
p.y=a.y+b.y;
return p;
}
void main() //Резултати от изпълнение
{ point a(1,2); a.out(); //координати:1 2
point b(2,5); b.out(); //координати:2 5
point c;
c=a+b; c.out(); //координати:3 7
c=a+b+c; (а+b+c).out(); //координати:6 14
}
c=a+b; се интерпретира като: c=operator+(a,b)
2. Предефиниране с използване на член-функция
Общ вид:
class A
{ //член-данни
Тагове от реферата: мехнизмът, прeдефиниране, интерпретия, совет, операии, ипове, предефиниране, възможност











