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.

vi ya da vim’de sözdizimi vurgulamayı etkinleştirmek

vim düzenleyici logosuVi ya da vim, çoğu linux dağıtımıyla birlikte gelen bir komut satırında kelime işleme uygulaması. Düz metin dosyalarını düzenlemek için hızlı ve sade bir seçenek. Ayrıca iki satır C/C++ kodu yazıp gcc ile derlemek istediğinizde bir tümleşik geliştirme ortamı (ide) açmanıza gerek kalmadan işinizi görebilecek bir çözüm. Tabii ki programlama dilleri için sözdizimi vurgulama desteği de var. Bu özelliği açmak için, vim ekranındayken esc’ye basıp

kapatmak içinse yine esc’ye bastıktan sonra

komutunu girmeniz yeterli.
Eğer bu özelliği kalıcı olarak etkinleştirmek isterseniz, uçbirimi açıp

ve ardından da

komutlarını vermeniz yeterli olacaktır.
Örnek ekran görüntüsü:
vim söz dizimi vurgulama(Bu görüntü, sistem renk düzeninize bağlı olarak değişebilir.)
İyi kodlamalar! :)

Fedora 17 “Beefy Miracle” Çıktı

“Fedora 17″ namıdiğer “Beefy Miracle” yayınlandı. Fedora linux dağıtımının bu yeni sürümü GNOME 3.4, KDE 4.8 ve Sugar 0.96 masaüstü ortamlarıyla geliyor.

fedora 17 ekran görüntüsü

Önemli özelliklerinden bazıları:

  • >16TB dosya sistemleri için ext4 desteği,
  • dinamik güvenlik duvarı yapılandırması,
  • otomatik çoklu oturum,

Önemli yazılım güncellemelerinden bazıları:

  • GNOME 3.4,
  • GIMP 2.8,
  • GCC 4.7.

Fedora 17’yi İndir | Fedora 17 Sürüm Notlarını Oku

Fedora 16 “Verne” Çıktı

Fedora 16 Ekran Görüntüsü

Fedora 16 “Verne”, nihayet indirilmeye hazır. Fedora bu sürümde de her zamanki gibi öntanımlı olarak en yeni GNOME masaüstü ortamıyla geliyor (GNOME 3.2). Fedora 16 ayrıca, “Trusted Boot” özelliğini de destekliyor.

Fedora 16 ile gelen diğer bazı yenilikler ise şunlar:

  • Linux Kernel 3.1.0
  • Xserver 1.11.1
  • Nautilus 3.2.1
  • Gedit 3.2.1
  • Evolution 3.2.1
  • Empathy 3.2.1.1
  • GDM 3.2.1
  • Firefox 7.0.1
  • Rhythmbox 2.90.1
  • Shotwell 0.10.1
  • Deja Dup Backup Tool 19.4
  • Totem 3.2.1
  • Transmission 2.42

Fedora 16 Duvar Kağıdı

GNOME Kabuğunun ve genel olarak GNOME masaüstü ortamının 3.2 sürümüyle birlikte daha kararlı ve hızlı bir hale geldiği de gözden kaçmıyor.

GNOME masaüstü ortamının son sürümünü, linux 3 çekirdeği ve daha birçok son sürüm uygulamayla birlikte denemek isterseniz aşağıdaki bağlantıları kullanabilirsiniz:

Fedora 16’yı İndir | Fedora 16 Sürüm Duyurusunu Oku

GNOME 3 için GNOME Kabuk Uzantıları (GNOME Shell Extensions)

GNOME Projesi tarafından, GNOME Kabuk Uzantıları (GNOME Shell Extensions) web sitesinin açılışı duyuruldu. GNOME 3 kullanıcıları artık bu siteye gidip istedikleri uzantıyı GNOME kullanıcı arabirimine kurarak masaüstlerini özelleştirebilecekler.

GNOME 3 Kabuk Uzantıları Web Sitesi Yayında

Şu anda GNOME Kabuk Uzantıları web sitesi deneme sürecinde ve sadece 47 uzantı bulunduruyor. Ama kullanıcılardan rağbet görmesi halinde bu sayı hızla artabilir.

Web sitesindeki kullanılabilir uzantılardan bazıları şunlar:

Eğer GNOME 2’deki bazı özellikleri hala özlüyor ya da GNOME 3 Kabuğunda yeni değişiklikler denemek istiyorsanız, bir göz atmanızda fayda var. 😉