Davut KARA

Bilişim Sistemleri Mühendisi

Bu blog, 5 yıl önce, bilişim ve diğer konularda hakkında, makalelerime yer vermek amacı ile açılmıştır.

Compe 225 | C++ Ders 4 – Temel Fonksiyonlar ve kullanımları

C++ Banner(c++ da bilmemiz gereken temel fonksiyonlar ve basit kullanımları.)

Fonksiyonu kullanmak için öncelikle tanımlamak gerekir, bu 2*2=4 gibi bir şey. Peki tanımlanmış fonksiyonları projemize nasıl dahil ediyoruz ?

Bunu cevaplamadan önce fonksiyonların nerelerde olabileceğini öğrenelim.

  • Kütüphane (Library) içinde
  • Kendimiz main dışında tanımlama yapabiliriz.
  • Class içine fonksiyon girebiliriz.
  • Namespace içine yazabiliriz veya yazılanı kullanırız.

Bildiğimiz kadarıyla bu 4 madde ile fonksiyonları tanımlayabilir veya tanımlanmışları bu yollarla ekleyerek kullanabiliriz, şimdi hızlıca hepsi için fonksiyona nasıl erişilir. Yazalım, aslında çoğunu gördünüz kullandınız sadece burada gruplandırma yaparak biraz daha oturmasını sağladık.

Kütüphane (Library) için

Dahil ederken:  #include <kütüphane_adi>

Çağırırken (Kullanırken) : Direk fonksiyonun adıyla yani fonksiyon();

Kendimiz main dışında tanımlarsak

Tanımlarken:  Kendimiz yazacağız bunu dahil etmenin 2 yolu var küçük bir hatırlatma olarak yazayım.

//Main fonksiyonu üstünde tanımlama.

return_type  fonksiyon_adı(parametetre,parametre){

                // Yapılacak işlemler

                return  return_edilecek_sey;

}

İnt main(){
 // main burada
}
//Main fonksiyonu altında tanımlama.

// Bu üsttekine function prototype deniyor.
return_type  fonksiyon_adı(parametetre,parametre);

int main(){
// main burada
}

return_type  fonksiyon_adı(parametetre,parametre){

                // Yapılacak işlemler

                return  return_edilecek_sey;

}

 

Şimdi yukardaki altta ve üste tanımlama kullanma mantığını kafaya oturtmak lazım çünkü bu ilerde class içinde fonksiyonları class dışında tanımlamada da karşımıza çıkacak.

Şu şekilde düşünebiliriz program compiler tarafından yukardan aşağı doğru okunuyor. Siz fonsiyonu aşağıda tanımladınız ama fonksiyonun return_type  fonksiyon_adı(parametetre,parametre);

Kısmını main üzerine yazmadınız ve main içinde bu fonksiyonu kullandınız, dolayısyıla bu fonksiyon nedir compiler anlayamıyor. Yani okuduğu yere kadar öyle bir fonksiyon ne gördü ne tanıdı, ama siz fonksiyonun adını ve alabileceği parametreli yukarda girerseniz o zaman hakkında biraz bilgi sahibi oluyor, ve fonksiyon kullanıldığı zamanda fonksiyonun kod bloğunu yani süslü parantezler içindeki kısmı çalışıtırıyor.

Çağırırken (Kullanırken) : Direk fonksiyonun adıyla yani fonksiyon();

Class içindeki fonksiyon

                Tanımlarken: Chapter 1 de gösterdiğim üzere class içerisine normal fonksiyon yazılır. Chapter1 den bakabilirsiniz.

Kullanırken: Chapter 1 de gösterdiğim üzere objeye atama yapılır daha sonra nokta kullanarak obje.fonksiyon(); şeklinde kullanılır.

NameSpace içindeki fonksiyon

Tanımlama ve kullanımı Chapter 1Buçuk da gösterdiğim üzere aynıdır.

Kullanımı:

#include <iostream>

using namespace std;
iostream Kütüphanesi (Library)

cin : scanf işlevi

cout : printf işlevi

Bu temel bilgilerden sonra c++ da klasik olarak kullanacağımız fonksiyonlardan ve bunları dahil etmekten bahsedelim.

Şimdi farkettiyseniz iostream kütüphanesini kullanmak için hem include yapıyoruz hemde using namespace yapıyoruz. Aslında include ettiğimizde niye ayrıyeten birde using namespace kullanıyoruz ki sorusunu sorarsanız,  <iostream> içinde fonksiyonları namespace kullanarak yazdıkları için diyebiliriz.

Aşağıda hem using namespace std yazarak hemde yazmayarak nasıl kullanıldığını ve cin cout syntax(yazım,kullanım kuralı şekli) ını ve birde endl i göreceksiniz, Chapter 1buçuğu anladıysanız aşağıdaki öğrenide anlamanız lazım

#include <iostream>

using namespace std;

int main(void){

       int a,b,c;             

       cout << "Bu bir string dolayısıyla çift tırnak içinde yazdım." ;      

       cout << "using namespace std dediğm için direk cout yazabiliyorum.";

       std::cout << "bak buda aynı şey namespace_adı 4-dot fonksiyon şeklindede erişebildim";

       cin >> a;               // scanf gibi yaptım girilen değeri a ya atadı.    

       std::cin >> b;     // aynı şey namespace 4-dot kullanarak yaptım.           

       /* Bak bu << ve >> işaretleride bağlama operatörüdür. */

       /* O zaman aynı anda 3 adet değer atayıp 3 değer okuyum.*/               

       cin >> a >> b >> c;           // gördüğün gibi araya bağlaç gibi >> ekledim.              

       cout << a << b << c << "string" << 1 << 1.5 ;        // hep aynı << ile birleştirdim.  

       /*Buda ek olarak özel olan satır kodu endl \n anlamına gelir*/

       //Aşağıdaki ikisi aynı.

       cout << ‘\n’;

       cout << endl;    

       //Biraz fantezi katarsak, sıkıntı çıkmaz.                Sonuçta endl de namespace içinde :)

       std::cout << std::endl;                 

       return 0;

}

Zaten 4-dot olayıyla namespace için pek işimiz yok ama bilsen iyi olur

Özetle aklından çıkarmaman gereken şey şunlar.

  • #include <iostream>
  • using namespace std;
  • cin >> degisken >> degisken ; gibi kullanılıyor oklar sağa bakar. Data almaya yarar.
  • cout << “string” << 2 << degisken; gibi kullanılır oklar sola bakar. Ekrana yazdırmaya yarar.
  • endl ise ‘\n’ ile (satır atlama) aynı görevi görür cout la kullanılır. cout << degisken << endl; gibi