- Fonksiyon Çağrısı
- Parametrelerin Geçirilmesi
- Fonksiyonun Aşırı Yüklenmesi
- İşlemin Aşırı Yüklenmesi
- Dışsal Fonksiyonların Tarifi
- Fonksiyonların Dışa Aktarımı
- Olay İşleyici Fonksiyonları
Fonksiyonlar
Tüm görevler alt görevlere bölünebilir. Bunların her biri doğrudan bütün bir kod şeklinde gösterilmiş olabileceği gibi, daha ufak alt görevlere bölünmüş de olabilir. Bu yöntem aşamalı geliştirme olarak adlandırılır. Fonksiyonlar çözülecek alt görevlerin yazımında kullanılırlar. Fonksiyonun ne iş yaptığını tarif eden kod, fonksiyon tanımı şeklinde isimlendirilir:
fonksiyon_başlığı
|
İlk çengel parantezden önceki her şey, fonksiyon tanımının başlığını oluşturur. Çengel parantezlerin arasında ise fonksiyon tanımının gövdesi yer alır. Fonksiyon başlığı dönüş değeri tipinin bir tarifini, fonksiyonun ismini (tanımlayıcı) ve biçimsel parametreleri içerir. Fonksiyona geçirilen parametrelerin sayısı sınırlıdır ve 64'ü geçemez.
Fonksiyon, programın diğer bölümlerinden gerektiği kadar çok çağrılabilir. Dönüş tipi, fonksiyon tanımlayıcısı ve parametre tipleri birlikte fonksiyon prototipini oluşturur.
Fonksiyon prototipi fonksiyonun bildirimidir fakat tanımı değildir. Dönüş tipinin ve argüman tiplerinden oluşan bir listenin açık bildirimi sayesinde, fonksiyon çağrıları esnasında katı tip kontrolü ve gizli tip dönüşümü mümkün olmaktadır. Fonksiyon bildirimleri kodun okunabilirliğini artırmak için sınıflarda çok sık kullanılır.
Fonksiyon tanımı fonksiyon bildirimi ile tam olarak örtüşmelidir. Bildirilen her fonksiyon tanımlanmalıdır.
Örnek:
double // dönüş değeri tipi
|
return operatörü, içine yerleştirilen bir ifadenin değerine dönüş yapabilir. Gerektiği takdirde, ifade değeri fonksiyonun sonuç tipine dönüştürülür. Dönüş yapılabilecek şeyler şunlardır: basit tipler, basit yapılar, nesne işaretçileri. Herhangi bir diziye, sınıf nesnesine veya bileşik yapı tipli değişkenlere return operatörü ile dönüş yapılamaz.
Hiçbir değere dönüş yapmayan bir fonksiyon, void tipi ile bildirilmelidir.
Örnek:
void errmesg(string s)
|
Fonksiyona geçirilen parametreler aynı tipteki sabitlerce belirlenmiş ön tanımlı değerler alabilirler.
Örnek:
int somefunc(double a,
|
Parametrelerden herhangi birinin değeri ön-tanımlı ise, bütün diğer parametrelerin de değerleri ön-tanımlı olmadır.
Hatalı bildirim Örneği:
int somefunc(double a,
|
Ayrıca Bakınız