C ++ İşlev Aşırı Yüklemesi (Örneklerle)

Bu eğitimde, örneklerle C ++ 'da fonksiyon aşırı yüklemesini öğreneceğiz.

C ++ 'da, geçirilen bağımsız değişkenlerin sayısı ve / veya türü farklıysa, iki işlev aynı ada sahip olabilir.

Aynı ada ancak farklı argümanlara sahip bu işlevler aşırı yüklenmiş işlevler olarak bilinir. Örneğin:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Burada 4 fonksiyonun tamamı aşırı yüklenmiş fonksiyonlardır.

Bu 4 işlevin tümünün dönüş türlerinin aynı olmadığına dikkat edin. Aşırı yüklenmiş işlevler farklı dönüş türlerine sahip olabilir veya olmayabilir, ancak farklı argümanlara sahip olmaları gerekir. Örneğin,

 // Error code int test(int a) ( ) double test(int b)( )

Burada, her iki işlev de aynı ada, aynı türe ve aynı sayıda argümana sahiptir. Bu nedenle, derleyici bir hata verecektir.

Farklı Parametre Türleri Kullanarak Fonksiyon Aşırı Yüklemesi

 // Program to compute absolute value // Works for both int and float #include using namespace std; // function with float type parameter float absolute(float var)( if (var < 0.0) var = -var; return var; ) // function with int type parameter int absolute(int var) ( if (var < 0) var = -var; return var; ) int main() ( // call function with int type parameter cout << "Absolute value of -5 = " << absolute(-5) << endl; // call function with float type parameter cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; )

Çıktı

 Mutlak değer -5 = 5 Mutlak değer 5.5 = 5.5
Mutlak () işlevi için aşırı yükleme çalışması

Bu programda absolute()fonksiyonu aşırı yüklüyoruz . İşlev çağrısı sırasında iletilen parametrenin türüne bağlı olarak, karşılık gelen işlev çağrılır.

Farklı Parametre Sayıları Kullanarak Fonksiyon Aşırı Yüklemesi

 #include using namespace std; // function with 2 parameters void display(int var1, double var2) ( cout << "Integer number: " << var1; cout << " and double number: " << var2 << endl; ) // function with double type single parameter void display(double var) ( cout << "Double number: " << var << endl; ) // function with int type single parameter void display(int var) ( cout << "Integer number: " << var << endl; ) int main() ( int a = 5; double b = 5.5; // call function with int type parameter display(a); // call function with double type parameter display(b); // call function with 2 parameters display(a, b); return 0; )

Çıktı

 Tam sayı: 5 Kayan sayı: 5.5 Tam sayı: 5 ve çift sayı: 5.5

Burada display()fonksiyon, farklı argümanlarla üç kez çağrılır. Aktarılan argümanların sayısına ve türüne bağlı olarak, ilgili display()işlev çağrılır.

Display () fonksiyonu için aşırı yükleme çalışması

Tüm bu işlevlerin dönüş türü aynıdır, ancak işlevin aşırı yüklenmesi için geçerli olması gerekmez.

Not: C ++ 'da, birçok standart kitaplık işlevi aşırı yüklenmiştir. Örneğin, sqrt()işlev alabilir double, float, int,parametre olarak vb. Bu, sqrt()işlevin C ++ 'da aşırı yüklenmesi nedeniyle mümkündür .

Ilginç makaleler...