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


Download 0.58 Mb.
bet36/71
Sana08.05.2023
Hajmi0.58 Mb.
#1444224
TuriПрограмма
1   ...   32   33   34   35   36   37   38   39   ...   71
Bog'liq
С ОЙП

{
int x,y;
Nuqta A(100,200), B(50,100),C;
C=A+B; // параметри синф туридаги объект бўлган
// қайта юкланган қўшиш оператори амал қилади
C.Nuqta_Qiymati(x,y);
cout<<" C=A+B: "<<"C.x="<туридаги объект
//бўлган қайта юкланган қўшиш оператори амал қилади
C.Nuqta_Qiymati(x,y);
cout<<" C=A+30: "<<"C.x="<Лекин компилятор
C=30+A;
кўрсатмасини қабул қилмайди.
Бу муаммони оператор функциянинг «ички» имкониятлари билан ҳал қилиб бўлмайди. Муаммони дўст оператор функциялардан фойдаланиш орқали ечиш мумкин. Маълумки, дўст функцияларга яширинган this кўрсаткичи узатилмайди. Шунинг учун бинар оператор функцияси иккита аргументга эга бўлиши керак – биринчиси чап операнд учун, иккинчиси ўнг операнд учун.
#include
class Nuqta
{
int x,y;
public:
Nuqta(){x=0; y=0;}
Nuqta(int _x,int _y){x=_x; y=_y;}
void Nuqta_Qiymati(int & _x,int & _y){_x=x; _y=y;}
friend class Nuqta operator+(Nuqta& ob1, Nuqta& ob2);
friend class Nuqta operator+(Nuqta& ob,int n);
friend class Nuqta operator+(int n, Nuqta& ob);
};
Nuqta operator+(Nuqta& ob1,Nuqta& ob2)
{
Nuqta OraliqOb;
OraliqOb.x=ob1.x+ob2.x;
OraliqOb.y=ob1.y+ob2.y;
return OraliqOb;

Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   71




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