16-ma’ruza. Obyektga yo’naltirilgan dasturlashda parametrlash. Amallarni qayta yuklash. Funksiya shablonlari va ulardan foydalanish



Yüklə 103,92 Kb.
səhifə5/7
tarix14.03.2023
ölçüsü103,92 Kb.
#87765
1   2   3   4   5   6   7
3.123-listing
class Dollars
{
private:
int m_dollars;
public:
Dollars(int dollars)
: m_dollars(dollars)
{
}
friend bool operator>(const Dollars &d1, const Dollars &d2)
{
return (d1.m_dollars > d2.m_dollars);
}
};
C++ endi Dollars obyektlarini oʻzgaruvchi sifatida ishlatganda a>b ifodasini qanday boshqarishni biladi.
Massiv elementlarining oʻrtacha arifmetik qiymatini hisoblaydigan funksiya uchun shablon yaratamiz (3.124-lis-ting).
3.124-listing
template
T average(T *array, int length)
{
T sum = 0;
for (int count=0; count < length; ++count)
sum += array[count];
sum /= length;
return sum;
}
Tekshirib koʻraylik (3.125-listing)
3.125-listing
#include
template
T average(T *array, int length)
{
T sum = 0;
for (int count=0; count < length; ++count)
sum += array[count];

sum /= length;


return sum;
}

int main()


{
int array1[] = { 6, 4, 1, 3, 7 };
cout << average(array1, 5) << '\n';

double array2[] = { 4.25, 5.37, 8.44, 9.25 };


cout << average(array2, 4) << '\n';

return 0;


}
Natija:
4
6.8275
Yuqoridagi misolda (3.125-listingga qarang) asosiy ma’lumotlar turlari bilan hammasi muvaffaqiyatli ishlaydi.
Funksiya shablonining qaytish turi funksiyaga oʻtkazilgan massiv elementlarining turi bilan bir xil boʻlganligi sababli, butun son qiymatlarining oʻrtacha arifmetik qiymatini hisoblash butun natijaga olib keladi (har qanday kasr qismini olib tashlash bilan), xuddi double qiymatlarni hisoblash double tipli natijaga olib kelishi kabi. Bu aniq boʻlmasligi mumkin, shuning uchun buni izohlarda koʻrsatish yaxshi amaliyotdir.
Quyida Dollars sinfidagi obyektlar bilan average() funksiyasi chaqirilganda nima sodir boʻlishini koʻrib chiqamiz(3.126-listing).

Yüklə 103,92 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin