12.07.2015 Views

C++ - VideoTutorials-bg.com

C++ - VideoTutorials-bg.com

C++ - VideoTutorials-bg.com

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Например, възможно е да се предефинират операторите +, -, * и/, така че да могат да събират, изваждат, умножават и делятрационални числа. Тогава вместо sum(p, q), sub(p, q), mult(p, q) иquot(p, q) ще можем да пишем p+q, p-q, p*q и p/q, което безспорное много по-удобно.Предефинирането се осъществява чрез дефиниране на специален видфункции, наречени операторни функции. Последните имат синтаксискато на обикновените функции, но името им се състои от запазенатадума operator, следвана от мнемоничното означение напредефинирания оператор. Когато предефинирането на операторизисква достъп до компонентите на класове, обявени като privateили protected, операторната дефиниция трябва да е член-функция илифункция-приятел на тези класове. Предефинираният оператор запазвавсички характеристики на оригиналния.Предефинирането може да стане по два начина:- чрез функция–приятел;- чрез член-функция.Чрез примери ще покажем тези два начина.Предефиниране чрез функция-приятелЗадача 126. Да се предефинират операторите +, -, * и / така, чеда могат да бъдат използвани за събиране, изваждане, умножение иделение на рационални числа.Програма Zad126_1.cpp решава задачата. В public частта на класаrat са включени декларациите на предефинираните оператори,предшествани от запазената дума friend:friend rat operator+(rat const &, rat const &);friend rat operator-(rat const &, rat const &);friend rat operator*(rat const &, rat const &);friend rat operator/(rat const &, rat const &);а след дефиницията на функцията main са дадени и технитедефиниции.// Program Zad126_1.cpp#include class rat{private:76

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!