Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

10 перегрузка

.pdf
Скачиваний:
14
Добавлен:
27.03.2015
Размер:
414.07 Кб
Скачать

10–31

(++ob) x = 11, y = 11

ПО может быть частью составных операторов: o2 = ++o1; .

10–32

2) ПЕРЕГРУЗКА УНАРНОГО ОПЕРАТОРА МИНУС

Пример:

class coord { int x, y;

public:

... // см. предыдущий пример

coord operator-(); };

10–33

coord coord::operator-()

{

x = -x; y = -y;

return *this;

}

10–34

int main()

{

coord ob(10,10); int x, y;

ob = -ob; // ПО отрицания

ob.getxy(x, y);

cout << ”(–ob) x = ” << x << ”, y = ” << y;

return 0;

}

10–35

(-ob) x = -10, y = -10

10–36

5.8.ФО в виде функции-друга класса

1)ПЕРЕГРУЗКА БИНАРНОГО ОПЕРАТОРА +

Пример:

class coord { int x, y;

public:

... // см. предыдущий пример

friend coord operator+(coord ob1, coord ob2);

};

10–37

coord operator+(coord ob1, coord ob2)

{

coord t;

t.x = ob1.x + ob2.x; t.y = ob1.y + ob2.y; return t;

}

10–38

int main()

{

coord o1(10,10), o2(5,3), o3; int x, y;

// вызов ФО operator+()

o3 = o1 + o2;

// печать суммарного объекта

o3.getxy(x, y);

cout << ”(o1+o2) x = ” << x << ”, y = ” << y;

10–39

return 0;

}

(o1+o2) x = 15, y = 13

10–40

Пример:

class coord { int x, y;

public:

...

// см. предыдущий пример

friend coord operator+(coord ob, int i); friend coord operator+(int i, coord ob);

};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]