C++’a Hızlı Giriş – 02 – İsim Uzayları (Namespaces)

C++’da isim uzayları, Java’daki paketler gibi, farklı kod parçaları arasındaki benzer adların çakışma sorununu çözmeye yardımcı olur. Örneğin, programınızda kullanmak üzere faktoriyel() isimli bir fonksiyon yazmış olalım. Diyelim ki bir süre sonra, bu işi bizim yazdığımız koddan daha etkili şekilde yapan harici bir kütüphane kullanmaya karar verdik ve bu yeni kütüphanedeki fonksiyonun adı da faktoriyel(). Bu durumda, faktoriyel(3) şeklinde bir çağrı yaptığımızda, derleyicinin bizim fonksiyonumuzu mu yoksa harici kütüphanedeki fonksiyonu mu çağıracağını bilme imkanı olmayacaktır.

İsim uzayları (namespace), tanımlamalarımızı hangi bağlamda yaptığımızı belirtmemize olanak tanıyarak bu sorunu çözer. Herhangi bir kod parçasını belirli bir isim uzayına dahil etmek için, ilgili kodu bir isim uzayı bloku içine koymamız yeterlidir:

faktoriyel() fonksiyonunun, benimisimuzayim içindeki sürümünü şu şekilde çağırabiliriz:

Her çağrıda isim uzayını tekrar tekrar belirtmek istemiyorsanız, sık kullandığınız bir isim uzayını dosyaya şu şekilde dahil edebilirsiniz:

Örnek main dosyamizi da şu şekilde yazalım:

Kodlarımızı şu komutla derleyip:

Şununla çalıştırdığımızda:

Şöyle bir çıktı alırız:

İsim uzaylarını etkin ve doğru kullanmak, “öylesine” yazılmış kodlarla gelişime açık ve “kaliteli” kodları birbirinden ayıran özelliklerdendir. Yazdığımız kodların rahatça tekrar kullanılabilmesi için de isim uzayı içinde tanımlamakta fayda var.

Bu günkü konunun örnek kodlarını indirmek için tıklayın: 02IsimUzaylari.tar.gz

C++’a Hızlı Giriş – 01 – Merhaba Dünya!

Başka (tercihen benzer) bir programlama dilini zaten bilip de C++ ile programlamaya hızlı bir giriş yapmak istiyorsanız ya da uzun süredir C++ kodu görmediğiniz/yazmadığınız için hızlı bir hatırlatmaya ihtiyacınız varsa işinize yarayabilir.

Ben yazacağım kodları linux altında g++ (gcc derleyicisinin c++ eklentisi) ile derleyeceğim. Aynı kodlar, başka işletim sistemlerinde ve/veya başka derleyiciler ile de sorunsuz derlenecek ve benzer çıktılar verecektir diye umuyorum. (:

Merhaba Dünya

Aşağıdaki basit programda, bir C++ programının olmazsa olmaz ileşenlerini görebilirsiniz:

Yukarıdaki kodu merhabadunya.cpp adıyla kaydettikten sonra uçbirimde

komutuyla derler ve oluşan ikili (binary) dosyayı

komutuyla çalıştırırsak, şöyle bir çıktı alırız:

Fedora 20 Çıktı!

Fedora 20Fedora 20 (kod adı Heisenbug) duyuruldu. Sürüm notlarına buradan ulaşabilir ve yeni sürümü şuradan indirebilirsiniz.

Fedora 20 sürümü, geçtiğimiz günlerde bir trafik kazasında hayatını kaybeden Seth Vidal’e ithaf edildi. Kendisi, Yum ve Fedora güncelleme depolarının lider geliştiricisiydi.

Her zamanki gibi bu Fedora sürümünün de öntanımlı masaüstü ortamı GNOME. Ayrıca KDE, XFCE, LXDE ya da MATE masaüstü ortamlarından birini de seçme şansınız var.

SSH ile Git Bağlantısında “Agent admitted failure to sign” Hatası

Fedora 18 üzerinde daha önce sorunsuz olarak gnome git hesabıma bağlanıp işlem yapabiliyorken, durduk yere şöyle bir hata almaya başladım (Durduk yere dedimse, hiç bir ayarı değiştirmediğimi kastediyorum; güncellemeler sırasında birşeyler değişmiş belli ki.):

Şurada söylenene bakılırsa bu hata ile sadece linux sistemlerde karşılaşılıyormuş ve çoğu zaman şu komutu çalıştırarak çözülebiliyormuş:

Bu arada, eğer ssh için kullanmak istediğiniz anahtar dosyası öntanımlı adla ve normal konumuna kaydedilmemişse aşağıdaki komutu kullanmanız gerekiyor:

Fedora 18 Sonunda Çıktı!

Fedora 18 Ekran GörüntüsüFedora 18, iki aylık bir gecikmenin ardından, sonunda çıktı.

Yeniden yazılmış kurulum arayüzü ve Sistem Depolama Yöneticisi’nin (SSM) yanında beş farklı masaüstü ortamı seçeneği (Gnome 3.6, Cinnamon, Mate Desktop, KDE Plasma Workspaces 4.9, Xfce 4.10) ile gelen bu yeni sürüm, UEFI Güvenli Açılışı da destekliyor. (Böylece, Windows 8 ile birlikte kolayca paralel kurulum (dual boot) yapılabilecek.)

Fedora Linux’un son sürümünde bulut için de yeni araçlar bulunuyor.

Yeni sürümdeki değişikliklerin tam listesi için Fedora 18 sürüm notlarını okuyabilir ve ilgili iso dosyasını Fedora projesi ana sayfasından indirebilirsiniz.