C++

C++ İşlev Aşırı Yüklemesi

C++ İşlev Aşırı Yüklemesi

C++ esnek bir genel amaçlı programlama dilidir. Bu programlama dili ilk olarak 1985 yılında Danimarkalı bir bilgisayar bilimcisi olan Bjarne Stroustrup tarafından oluşturuldu. C++ polimorfizmi, kalıtımı ve daha fazlasını destekler. Bu makale, C++ programlama dilinde derleme zamanı çok biçimliliği elde etmek için işlev aşırı yüklemesini kapsar.

İşlev nedir?

Bir işlev, sağlanan girdilere dayalı olarak belirli bir görevi yerine getiren belirli bir kod parçasından başka bir şey değildir ve istenen sonuçları bir çıktı biçiminde kullanıcıya döndürür. İşlevler, büyük kod tabanlarında tekrarlayan kodu ortadan kaldırmak için kullanılır.

Bir işlevi tanımladıktan sonra, aynı programda veya farklı bir programda daha sonraki bir zamanda yeniden kullanabilirsiniz.

İşlev Sözdizimi

C++'daki bir işlev aşağıdaki sözdizimine sahiptir:

returnType işlevAdı(parametre_listesi)



dönüş_değeri döndür;

returnType, parametre_listesi ve dönüş ifadesi isteğe bağlıdır. C++'da bir fonksiyon maksimum bir değer döndürebilir. Bir işlev herhangi bir değer döndürmezse, returnType void olarak tanımlanmalıdır.

İşlev Aşırı Yüklemesi Nedir??

C++'da, birden çok işlev tanımı aynı işlev adına ancak farklı parametrelere sahip olabilir. Buna fonksiyon aşırı yüklemesi denir. Fonksiyon aşırı yükleme özelliğinin yardımıyla, C'de derleme zamanı polimorfizmi elde edilebilir++.

İşlevler aşağıdaki şekillerde aşırı yüklenebilir:

  1. Parametre sayısı farklı olabilir
  2. Parametrelerin veri tipi farklı olabilir
  3. Parametrelerin sırası farklı olabilir

Ancak, işlev aşırı yüklemesi için dönüş değeri dikkate alınmaz. 

Aşağıdaki işlevler aşırı yüklenmiştir:

  1. int ekleme (int a, int b)
  2. şamandıra ilavesi (float f, gloat g)
  3. float ekleme (float f, int i)
  4. float ekleme (int i, float f)
  5. int ekleme (int a, int b, int c)
  6. float ekleme (float f, float g, float h)

Görüldüğü gibi C++ da fonksiyon aşırı yükleme özelliği sayesinde aynı fonksiyon isminde ve aynı kapsamda birden fazla tanım/fonksiyon olabilir.

İşlev aşırı yükleme özelliği olmadan, her varyasyon için ayrı bir işlev [örneğin, ek_1(), ek_2() vb.] yazmanız gerekir. Örneğin, iki tamsayı eklemek için add_1(), iki kayan nokta eklemek için add_2() vb. yazmanız gerekebilir. Ancak yukarıda da görebileceğiniz gibi, işlev aşırı yükleme özelliği aynı işlev adını koruyarak “addition()” işlevinin birden çok varyasyonunu tanımlamak için kullanılabilir.

Aşağıdaki işlevler aşırı yüklenmiş olarak kabul edilmez, çünkü bu ikisi arasındaki tek fark dönüş tipidir (dönüş tipi, C++'da işlev aşırı yüklemesi için dikkate alınmaz):

  1. int ekleme (int a, int b)
  2. float ekleme (int a, int b)

Örnekler

Artık fonksiyon aşırı yükleme kavramını anladığınıza göre, bu kavramı daha net anlamak için birkaç örnek program üzerinden geçeceğiz. Aşağıdaki örnekleri ele alacağız:

  1. Örnek 1: Basit İşlev
  2. Örnek 2: Basit Toplama İşlevi
  3. Örnek 3: Fonksiyon Aşırı Yükü (1)
  4. Örnek 4: Fonksiyon Aşırı Yükü (2)
  5. Örnek 5: Fonksiyon Aşırı Yükü (3)

İlk iki örnek, normal işlevlerin C++'da nasıl çalıştığını açıklarken, son üç örnek, C'deki işlev aşırı yükleme özelliğini gösterir++.

Örnek 1: Basit İşlev

Bu örnekte, C'de basit bir fonksiyonun nasıl tanımlanıp çağrılabileceğini göstereceğiz++. “Display” adında bir sınıf ve “display()” adında bir genel fonksiyon tanımlayacağız.“Main()” fonksiyonundan “Display” sınıf nesnesi (d) yardımıyla “display()” fonksiyonunu çağıracağız.

#Dahil etmek
ad alanı std kullanarak;
sınıf Ekran

halka açık:
geçersiz ekran()

cout << "Hello World!" << endl;

;
int ana()

d'yi göster;
d.Görüntüle();
0 döndür;

Örnek 2: Basit Toplama İşlevi

Bu örnekte, C'de basit bir "addition()" fonksiyonunun nasıl tanımlanacağını göstereceğiz++. “DemoAdd” adında bir sınıf ve “addition()” adında bir public fonksiyon tanımlayacağız.“Main()” fonksiyonundan “DemoAdd” sınıf nesnesi (d) yardımıyla “addition()” fonksiyonunu çağıracağız.

Bu örnekte, "addition()" işlevinin mevcut uygulaması yalnızca iki tamsayı parametresini kabul eder. Bu, mevcut "ekleme ()" işlevinin yalnızca iki tamsayı ekleyebildiği anlamına gelir.

İki yerine üç tamsayı eklemek için “addition_1()” gibi farklı bir ada sahip bir fonksiyon tanımlanabilir. C++'da bir fonksiyon aşırı yüklenebilir, yani “addition()” fonksiyonunun başka bir tanımı üç tamsayı eklemek ve aynı ismi tutmak için tanımlanabilir.e., "ilave().Bir sonraki örnekte, “addition()” fonksiyonunun nasıl aşırı yükleneceğine bakacağız.

#Dahil etmek
ad alanı std kullanarak;
sınıf DemoAdd

halka açık:
int ekleme(int a, int b)

int sonuç;
sonuç = a + b;
dönüş sonucu;

;
int ana()

DemoAdd;
int i1 = 10, i2 = 20, res;
res = d.ekleme(i1, i2);
cout << "Result = " << res << endl;
0 döndür;

Örnek 3: Fonksiyon Aşırı Yükü (1)

Önceki örnekte, iki tamsayı eklemek ve hesaplanan sonucu döndürmek için “addition()” işlevini tanımlamıştık. Şimdi, bu örnekte, üç tamsayı eklemek için “addition()” fonksiyonunu aşırı yükleyeceğiz. Böylece, iki tamsayı argümanı ve üç tamsayı argümanı ile “addition()” fonksiyonunu çağırabileceğiz.

Fonksiyon aşırı yükleme özelliği olmasaydı, farklı bir isimle başka bir fonksiyon yazmamız gerekecekti.

#Dahil etmek
ad alanı std kullanarak;
sınıf DemoAdd

halka açık:
// Toplamanın ilk işlev tanımı()
int ekleme(int a, int b)

int sonuç;
sonuç = a + b;
dönüş sonucu;

// add() fonksiyonunun aşırı yüklenmiş versiyonu
int ekleme(int a, int b, int c)

int sonuç;
sonuç = a + b + c;
dönüş sonucu;

;
int ana()

DemoAdd;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.ekleme(i1, i2); // 2 parametreli toplama()
res2 = d.ekleme(i1, i2, i3); // 3 parametreli toplama()
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
0 döndür;

Örnek 4: Fonksiyon Aşırı Yükü (2)

Bu makalenin önceki bölümlerinde, parametre türündeki farklılıklara bağlı olarak işlev aşırı yüklemesinin gerçekleştirilebileceğini öğrenmiştiniz. Burada parametrenin veri tipine göre “addition()” fonksiyonunu aşırı yükledik. Toplama fonksiyonunun ilk versiyonunda iki tamsayı tipi değişken ekleyeceğiz; ve ikinci versiyonda iki float tipi değişken ekleyeceğiz.

#Dahil etmek
ad alanı std kullanarak;
sınıf DemoAdd

halka açık:
// Eklemenin ilk tanımı()
int ekleme(int a, int b)

int sonuç;
sonuç = a + b;
dönüş sonucu;

// Aşırı yüklenmiş fonksiyon tanımı
şamandıra ilavesi(şamandıra f, şamandıra g)

yüzer sonuç;
sonuç = f + g;
dönüş sonucu;

;
int ana()

DemoAdd;
int i1 = 10, i2 = 20, res1;
kayan nokta f1 = 10.5, f2 = 20.7, res2;
res1 = d.ekleme(i1, i2); // toplama(int a, int b) çağrılacak
res2 = d.ekleme(f1, f2); // toplama(şamandıra f, düz g) çağrılacak
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
0 döndür;

Örnek 5: Fonksiyon Aşırı Yükü (3)

Bu örnekte, "addition()" işlevi, parametre listesi sırasındaki farklılıklara dayalı olarak aşırı yüklenmiştir. Bu, C'deki bir işlevi aşırı yüklemenin başka bir yoludur++.

#Dahil etmek
ad alanı std kullanarak;
sınıf DemoAdd

halka açık:
// add() fonksiyonunun ilk fonksiyon tanımı
float ekleme(int a, float b)

yüzer sonuç;
sonuç = (yüzer)a + b;
dönüş sonucu;

// add() fonksiyonunun aşırı yüklenmiş fonksiyon tanımı
float ekleme(float a, int b)

yüzer sonuç;
sonuç = a + (yüzer)b;
dönüş sonucu;

;
int ana()

DemoAdd;
int i1 = 10;
kayan nokta f1 = 10.5, res1, res2;
res1 = d.ekleme(i1, f1); // toplama(int a, float b) çağrılacak
res2 = d.ekleme(f1, i1); // toplama(float a, int b) çağrılacak
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
0 döndür;

Sonuç

C++, çeşitli alanlarda yaygın olarak kullanılan genel amaçlı ve esnek bir programlama dilidir. Bu programlama dili hem derleme zamanı hem de çalışma zamanı polimorfizmini destekler. Bu makalede, fonksiyon aşırı yükleme özelliğini kullanarak C++'da derleme zamanı polimorfizminin nasıl elde edileceğini öğrendiniz. Bu, programcıların okunabilir kodlar yazmasına yardımcı olan C++'da çok yararlı bir özelliktir. Yeniden kullanılabilir kod yazmak için de yardımcı olabilir.

Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...