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


Download 0.58 Mb.
bet29/71
Sana08.05.2023
Hajmi0.58 Mb.
#1444224
TuriПрограмма
1   ...   25   26   27   28   29   30   31   32   ...   71
Bog'liq
С ОЙП

}
int abs(int n)
{
return n<0?-n:n;
};
long abs(long l)
{
return l<0?-l:l;
};
double abs(double d)
{
return d<0?-d:d;
};
Маълумки, С++ тили кутубхонасида соннинг абсолют қийматини ҳисоблаш учун аргумент турига мос равишда abs( ), labs( ) ва fabs() функциялари аниқланган. Юқорида келтирилган мисолда соннинг қандай турда бўлишидан қатъий назар битта abs() функцияси чақирилган ва шунинг ҳисобига программа матни соддалашган.


Синфнинг функция-аъзоларини қайта юклаш
Функцияларни қайта юклашда қуйидаги ҳолатларги эътибор бериш керак:
1) аргументлари турли хил инициализаторларга функциялар ҳар хил функция ҳисобланади ва уларни қайта юклаш мумкин;
2) иккита функция параметрлари рўйхатида бирор турдаги параметр бўлиб, иккинчисида мос ўринда шу турга мурожаат бўлса, бундай функциялар қайта юклаш нуқтаи – назаридан айнан бир хил кўриниш деб ҳисобланади ва уларни қайта юклаш мумкин эмас. Масалан, эълонлари
int func(int, int);
ва
int func(int&, int&);
компиляция хатосига олиб келади, чунки улар қайта юклаш бўйича бир хил ҳисобланади.
3) функцияларнинг қандайдир турга тегишли аргументлари бир–биридан const ва volatile модификаторлари билан фарқланса, қайта юклаш нуқтаи–назаридан улар бир хил эълон ҳисобланади ва бу фарқ билан функцияларни қайта юклаш мумкин эмас;
4) функциянинг қандайдир турга мурожаат аргументига иккинчи функциядаги мос ўриндаги мурожаат const ва volatile модификаторли мурожаатлар бўлса, қайта юклаш нуқтаи–назаридан бу функциялар фарқланади ва уларни қайта юклаш мумкин. Масалан, қуйидаги қайта юклашлар ўринли.
#include
class Sinf
{
Sinf()
{
cout<<”Sinf uchun kelishuv bo’yicha konstruktor”<
}



Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   71




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