Temel C++ 3. Gün: Fonksiyonlar, Girdi/Çıktı, İşaretçiler
Fonksiyonlar
Fonksiyonlar (Diğer adıyla metodlar) programları bölümlere ayırmaya yarar. Böylelikle proje büyükte sorun çıkarmaya başlayacak olan kod tekrarlarını da minimuma indirir. Yine de projenizi iyi tasarlamalısınız, aksi halde yararından çok zararı olur. Fonksiyonlar;
"geri döndüreceği veri tipi" "fonksiyon adı"(1. parametre, 2. parametre, n. parametre)
şeklinde tanımlanır.
Örnek: int topla(int sayi1, int sayi2)
int tipinde topla adında, sayi1 ve sayi2 olmak üzere iki parametresi olan bir fonksiyondur.
Fonksiyonlar konusunu basit bir örnek üzerinde göstermek en doğrusu olacaktır sanırım. Basit bir hesap makinesi örneğiyle hem önceki konuları pekiştirelim hem de fonksiyonların mantığını anlayalım.
Hesap Makinesi:
1 |
|
Girdi / Çıktı İşlemleri (Dosyalar)
Ufak programlar dışındaki çoğu program dosyalar ile çalışır. Dolayısıyla dosya oluşturmak, okumak ve yazmak için belirli fonksiyonlara ihtiyaç vardır. Burada devreye fstream
kütüphanesi devreye giriyor. Vektörleri kullanmak için nasıl vector
kütüphanesini kullandıysak burada da aynı şekilde fstream
kütüphanesini kullanacağız.
Dosyalar şu kurala uygun şekilde programa dahil edilir;
Dosyaya yazmak için: ofstream değişken adı ("dosya adı", açma modu)
Dosyadan okumak için: ifstream değişken adı ("dosya adı", açma modu)
Her iki mod için birer örnek yapalım.
Girdiğiniz adı ve soyadı dosyaya yazan program örneği:
1 |
|
Dosyaya yazdırdığınız adı ve soyadı okuyup ekrana yazan program örneği:
1 | // ios::in modunda "dosya.txt" isimli dosyayi aciyoruz. |
İşaretçiler (Pointers)
İşaretçiler, değişkenlerin aksine değer yerine değerin adresini saklarlar. Bellek yönetimi açısından çok önemlidirler. İşletim sistemleri ve oyunlar gibi yazılımlarda çok fazla kullanılırlar. Aynı değişkenler gibi tanımlanırlar tek farkları başlarına *
getirilmesidir. Tanımlama örneği;int *sayi;
Basit örnek:
1 |
|
Bu örnekten sonra neden işaretçilere gerek olduğu konusunda akılda bir soru oluşabilir. Bölüm başında anlattığımız fonksiyonlarda parametre olarak int tipinde değişken alıyorduk ve böyle yaptığımızda değişkeni kopyalamış oluyoruz. Bu da bellekte iki kat daha fazla yer kaplaması anlamına geliyor. Fakat eğer değerleri fonksiyonlara işaretçi yoluyla yollarsak bu sorun ortadan kalkmış oluyor.
İşaretçi konusu genelde yeni başlayanlar tarafından oldukça kafa karıştırıcı bulunur. Bu yüzden en basit şekilde açıklayıp burada bırakmayı doğru buluyorum. Bu konuda daha fazla örneği internet üzerinden bulabilirsiniz.
Sonraki Bölüm: Sınıflar, Nesneler:
Temel C++ - 4. Gün: Sınıflar, Nesneler