Bir xil nomdagi funksiyalarni har xil toifali o’zgaruvchilar ro’yxati bilan murojaat qilib chaqirish mumkin. Parametrlar soni ham har xil bo’lishi mumkin. Bunday holatda parametrlar ro’yxati va qiymatlarga qarab kompilyator o’zi qaysi funksiyani chaqirish kerakligini aniqlaydi [1]. Masalan:
Bir xil nomdagi funksiyalarni har xil toifali o’zgaruvchilar ro’yxati bilan murojaat qilib chaqirish mumkin. Parametrlar soni ham har xil bo’lishi mumkin. Bunday holatda parametrlar ro’yxati va qiymatlarga qarab kompilyator o’zi qaysi funksiyani chaqirish kerakligini aniqlaydi [1]. Masalan:
1. double multi (float x)
{return x*x*x; }
2. double multi (float x, float y)
{ return x*y*y; }
3. double multi (float x, float y, float z)
{ return x*y*z; }
va quyidagi murojaatlarning hammasi to’g’ri yozilgan:
multi (0.5);
multi (1.45, 7);
multi (10, 39, 54);
Funksiyalarning bir xil nom bilan atalishi polimorfizm deb ataladi. Poli – ko’p, morfe – shakl degan ma’noni bildiradi.
Funksiyalarning bir xil nom bilan atalishi polimorfizm deb ataladi. Poli – ko’p, morfe – shakl degan ma’noni bildiradi.
Masalan:
# include
int max (int a, int b)
{ if (a>b) return a; else return b;}
float max (float a, float b)
{ if (a>b) return a; else return b;}
int main ( )
{
int a1, b1; float a2, b2;
cin >> a1>>b1;
cout << “butun max=”<
cin >>a2>>b2;
cout << “haqiqiy max=”<< max(a2, b2)<
}
1-misol. B va C vektorlarining uzunliklarini hisoblash dasturini tuzing. Vektor uzunligini hisoblash uchun funksiyadan foydalaning.
1-misol. B va C vektorlarining uzunliklarini hisoblash dasturini tuzing. Vektor uzunligini hisoblash uchun funksiyadan foydalaning.
# include < iostream. h>
float vector (int d[ ], int k)
{ float s=0; int i ;
for (i=0; i
s = s + d[i] * d[i];
s = sqrt (s);
return s; }
int main ( )
{
int b[3] = {10,20,30}, c[4] = {14,15,16,17};
float s1, s2;
s1 = vector (b, 3);
s2 = vector (c, 4);
cout <<”s1=” << s1 <<” s2=” << s2 << endl;
}
Do'stlaringiz bilan baham: |