Объектга йўналтирилган программалаш


Download 0.58 Mb.
bet41/71
Sana08.05.2023
Hajmi0.58 Mb.
#1444224
TuriПрограмма
1   ...   37   38   39   40   41   42   43   44   ...   71
Bog'liq
С ОЙП

N1.x=-10 N1.y=20
N1.x=10 N1.y=-20
сатрлари пайдо бўлади.
Худди шу натижаларга глобал оператор функцияларни синфнинг дўст функциялари кўринишида эълон қилиш орқали эришиш мумкин:
friend Nuqta operator+(Nuqta & ob);
friend Nuqta operator-(Nuqta & ob);
Бу функциялар аниқланиши
friend Nuqta operator+(Nuqta & ob)
{
ob.x=+ob.x;
ob.y=+ob.y;
return ob;
}
friend Nuqta operator-(Nuqta & ob)
{
ob.x=-ob.x;
ob.y=-ob.y;
return ob;
}
Ушбу функцияларни чақириш натижалари юқоридаги функциялар билан бир хил бўлади.
Инкремент ва декремент операторларини қайта юклаш
Инкремент ва декремент операторлари, уларнинг префикс ва постфикс кўринишлари бўлиши ҳисобига қайта юклаш нуқтаи-назаридан алоҳида категорияга тушади. Префикс ва постфикс кўринишларни фарқлаш учун қуйидаги қоидаларга амал қилинади: префикс кўринишни қайта юклаш, одатдаги унар операторни қайта юклаш билан бир хил; постфикс кўриниш учун оператор функция қўшимча int туридаги параметрга эга бўлади. Амалда бу параметр ишлатилмайди ва функцияни чақиришда унинг қиймати 0 бўлади (зарурат бўлганда ишлатилиши мумкин). Бу параметрнинг вазифаси – компиляторга операторнинг постфикс кўриниши ишлатилаётганлигини билдиришдир. Қуйидаги мисолда Nuqta синфи учун инкремент ва декремент операторларини қайта юклаш кўрсатилган:
#include
class Nuqta
{
int x,y;
public:
Nuqta(int _x,int _y){x=_x; y=_y;}
Nuqta(){x=0; y=0;}
Qiymat_xy(int & _x,int & _y){_x=x; _y=y;}
Nuqta & operator++(); // префикс инкремент учун
Nuqta operator++(int); // постфикс инкремент учун
Nuqta & operator––(); // префикс декремент учун
Nuqta operator––(int); // постфикс декремент учун

Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   37   38   39   40   41   42   43   44   ...   71




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling