İnline Fonksiyonlar
C++ `ın C ye ek olarak getirmiş olduğu bir
özellikte inline fonksiyonlardır. Anlamak için basit bir örnekle
başlayalım. Örneğin öyle bir program yazıcağız ki, aşırı miktarda
kare alma işlemi yapmamız gerekecek ve bunun için herhangi bir
fonksiyon çağırmıyor olalım. Bu durumda define komutu ile
derleyiciye şu şekilde bir komut veririz:
#define kare(x) x*x
İşlemin sonunda ; olmamasına dikkat ediniz.
Kullanımına gelince de,
y=kare(x);
bu durumda derleyici derleme aşamasında
bütün kare(x) `leri x*x olarak yorumlayacaktır. Burada dikkat
edilmesi gereken yer, #define topla(x,y) x+y ve kullanımda da
z=topla(x,y)*topla(x,y); işte işlem sırasının vermiş olduğu hatayı
görüyorsunuzdur. Tabi bunu da parantezlerle ayıracağız. Şimdi bunu
C++ tam uyarlarsak, inline kelimesini, bir direktif olarak yada
C++ derleyicisine fonksiyonu tek satıra koyması önerisi olarak
düşünebiliriz. Derleyici bir çok nedenden dolayı bunu kabul
etmeyebilir. Mesela, Fonksiyon çok uzun olabilir, Döngü içeren bir
fonksiyon, değişken tanımı içeren bir fonksiyon, kendini çağıran
bir fonksiyon her zaman inline olmaz.
//kup.cpp
//Kupun hacmini bulma
#include <iostream.h>
//inline fonksiyonumuz
//------------------
inline double kup( const double x)
{
return x * x * x;
}
//---------------------
int main()
|