11,1 Obyektga mo‘ljallangan yondashuv tarixi


#include using namespace std; class Complex



Download 221,05 Kb.
bet66/70
Sana26.02.2022
Hajmi221,05 Kb.
#466131
1   ...   62   63   64   65   66   67   68   69   70
Bog'liq
C

#include using namespace std; class Complex
{
double re, im; public:
Complex(){};
Complexfdouble rel, double iml=0)
{
re = rel; im = iml;
}
void show()
{
cout« "re=" « re « "im =" «im « endl;
};
Complex operator+ (Complex a);
Complex operator + = (Complex b);
};
friend vector& operator - (vector &); public:
vector (int n, double xn[]); void display ();
};
vector::vector (int n, double xn[])
{
N = n;
for (int i=0; i
}
void vector:: display ()
{
cout«"\n Vector koordinatalari:"; for (int i=0; i
};


vector& operator - (vector& v)
{
for (int i=0; i
};
int main ()
{
double A[] = {1.0, 2.0, 3.0, 4.0}; vector V(4, A);
V.displayO;
V=—V; '
V.displayO; return 0;
}
Natija:
Vektor koordinatalari: 12 3 4 Vektor koordinatalari: -1 -2 -3 -4
Quyidagi komponentalarni qayta yuklash mumkin emas:
. — strukturalangan obyekt komponentasini to'g'ridan to g ri tanlash,

  • - komponentaga ko'rsatkich orqali murojaat qilish;

?: - shartli operatsiya:
:: - ko'rinish doirasini aniqlash;
sizeof - xotira hajmini aniqlash;

  • - preprotsessor direktivasi;

## - protsessorli amal;
Qayta yuklash mexanizmi yana quyidagi xususiyatlarga ega:

  • Standart amallarni qo‘shimcha yuklanganda prioritetlarini o'zgar- ti -ish mumkin emas.

  • Qo’shimcha yuklangan amallar uchun ifodalar sintaksisini o‘zgartirish mumkin emas. Unar=yoki binar + + amallarni kiritish mumkin emas.

  • Amallar uchun yangi simvollar kiritish mumkin emas, masalan, ko'paytirish uchun ** belgisi.

  • Har qanday binar amal ikki usul bilan aniqlanadi, yoki bir parametrli komponenta funksiya sifatida, yoki global, yoki dostona global ikki param­etrli funksiya.

Birinchi holda x*y ifoda x. operator* (y) murojaatni, ikkinchi holda esa operator* (x, y) murojaatni bildiradi.
Binaramallar semantikasigako‘ra operator=, operator[ ], operator-> global funksiya bo'la olmaydi. Balkim nostatik komponenta funksiyasi boiishi lozim.
Har qanday unar amal sinf obyektlari uchun ikki usulda aniqlanadi, yoki parametrsiz komponenta funksiya, yoki bir parametrli (balki do‘stona) global funksiya.
Prefiks amal uchun + + z ifoda, komponenta funksiya z.operator++() yoki global funksiya operator ++(z) chaqirilishini bildiradi.
C + + tilida ba'zi amallar boshqa amallarning kombinatsiyasi sifatida aniqlanadi. Misol uchun, long m = 0 butun son ++m uchun m j- = 1 ni. bu amal esa m=m+l ni bildiradi. Bunday avtomatik almashtirishlar qo‘shimcha yuklangan amallar uchun bajarilmaydi. Misol uchun, umumiy holda operator* = () ta'rifni operator*() ta’rif va operator=() ta’rifdan keltirib chiqarib boimaydi.
Agar ifodada foydalanuvchi kiritgan sinf obyekti qatnashmasa, uning ma’nosini o‘zgartirib boimaydi. Misol uchun, faqat koisatkichlarga ta'sir qiluvchi amallarni kiritish mumkin emas.
Agar operatsiya-funksiyaning birinchi parametri standart tur bo'- lishi kerak boisa, bunday operatsiya-funksiya komponenta-funksiya bo‘la olmaydi. Misol uchun AA — biror sinf obyekti va uning uchun ' + ' amali qo‘llangan bo'lsin. AA + 2 ifoda uchun yoki AA.operator(2) yoki operator+(AA. 2) ifoda chaqirilishi mumkin. 2 + + AA ifoda uchun operator +(AA, 2) chaqirilishi mumkin, lekin z.operator+(AA) xatoga olib keladi.


С ++ tilining zamonaviy versiyalarida prefiks ++ va -- operatsiya- larni qo'shimcha yuklash boshqa operatsiyalarni yuklashdan farq qilmaydi. Postfiks shakldagi + + va — amallarini qayta yuklaganda yana bir int turidagi parametr kiritilishi kerak. Agar qo'shimcha yuklash uchun global funksiya ishlatilsa, uning birinchi parametri sinf turiga, ikkinchi parametri int turiga ega boiishi kerak.
Dasturda postfiks ifoda ishlatilganda butun parametr ham qiymatga ega bo'ladi.
Quyidagi dasturda prefiks ++ va -- hamda postfiks ++ va -- operatsiyalarini qo'shimcha yuklash ko'rsatilgan:

Download 221,05 Kb.

Do'stlaringiz bilan baham:
1   ...   62   63   64   65   66   67   68   69   70




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish