Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
C++ ile Başlarken
#1

Bölüm 1: C++ ile Başlarken


Bölüm 1.1: Hello World 


Bu program, standart çıkış akışına Hello World! yazdırır:

Kod:
#include <iostream>
int main()
{
    std::cout << "Hello World!" << std::endl;
}

Analiz

Kodun her bir parçasını detaylı olarak inceleyelim:
  • #include <iostream> ön işlemci yönergesi, standart C++ başlık dosyası iostream'ın içeriğini dahil eder.

  • iostream, standart giriş ve çıkış akışlarının tanımlarını içeren standart bir kütüphane başlık dosyasıdır. Bu tanımlar, aşağıda açıklanan std ad alanı içinde yer alır.

  • Standart giriş/çıkış (G/Ç) akışları, programların dış bir sistemden (genellikle terminal) giriş almasına ve çıktı üretmesine olanak tanır.

  • int main() { ... } adında yeni bir fonksiyon tanımlar. Sözleşime göre, programın çalıştırılması üzerine main fonksiyonu çağırılır. Bir C++ programında sadece bir tane main fonksiyonu olabilir ve her zaman int tipinde bir sayı döndürmelidir.

  • Burada int, fonksiyonun dönüş tipi olarak adlandırılır. main fonksiyonu tarafından döndürülen değer bir çıkış kodudur.

  • Sözleşime göre, 0 veya EXIT_SUCCESS çıkış kodu, programı çalıştıran sistem tarafından başarı olarak yorumlanır. Diğer herhangi bir dönüş kodu bir hatayla ilişkilendirilir.

  • Eğer return ifadesi bulunmazsa, main fonksiyonu (ve dolayısıyla programın kendisi) varsayılan olarak 0 döndürür. Bu örnekte, return 0; ifadesini açıkça yazmamıza gerek yoktur.

  • void tipi döndürenler dışında tüm fonksiyonlar, dönüş türüne göre açıkça bir değer döndürmelidir veya hiç döndürmemelidir.

std::cout << "Hello World!" << std::endl; ifadesi standart çıktı akışına "Hello World!" yazdırır:

  • std bir ad alanı (namespace) olup, :: kapsam çözümleme operatörü, adlar ile ad alanları arasında ilişki kurmak için kullanılır. Birçok ad alanı vardır. Burada :: operatörü, std ad alanı içerisindeki cout'u kullanmak istediğimizi gösterir. 

  • std::cout, iostream içerisinde tanımlanmış standart çıktı akışı nesnesidir ve standart çıktıya (stdout) yazdırır.

  • << bu bağlamda akış ekleme operatörüdür ve bir nesneyi akış nesnesine ekler. Standart kütüphane, belirli veri tipleri için çıktı akışlarına veri eklemek üzere << operatörünü tanımlar. stream << içerik, içeriği akışa ekler ve aynı ancak güncellenmiş akışı döndürür. Bu, akış eklemelerinin zincirlenmesine izin verir: std::cout << "Foo" << " Bar"; konsola "FooBar" yazdırır.

  • "Hello World!" karakter dizisi veya "metin literali"dir. Karakter dizisi literalleri için akış ekleme operatörü iostream dosyasında tanımlanır.

  • std::endl özel bir G/Ç akışı manipülatörü nesnesidir ve yine iostream dosyasında tanımlanır. Bir manipülatörün bir akışa eklenmesi akışın durumunu değiştirir. std::endl akış manipülatörü iki şey yapar: önce satır sonu karakterini ekler ve ardından metnin konsolda görünmesini zorlamak için akış tamponunu temizler. Bu, akışa eklenen verilerin gerçekten konsolunuzda görünmesini sağlar. (Akış verileri genellikle bir tampona kaydedilir ve hemen bir temizleme zorlanmadığı sürece toplu olarak "temizlenir".)

  • Alternatif bir yöntem temizlemeyi önler:
    Kod:
    std::cout << "Hello World!\n";
    burada \n karakteri satır sonu karakteri için karakter kaçış sekansıdır.

  • Noktalı virgül ( ; ) derleyiciye bir ifadenin bittiğini bildirir. Tüm C++ ifadeleri ve sınıf tanımları bitiş/sonlandırma noktalı virgülü gerektirir.


Bölüm 1.2: Yorumlar

Yorum, C++ derleyicisinin herhangi bir işlevsel anlam yüklemeden kaynak kodu içinde rastgele metin yerleştirmenin bir yoludur. Yorumlar, bir programın tasarımı veya yöntemi hakkında bilgi vermek için kullanılır.
C++'ta iki tür yorum vardır:

Tek Satırlı Yorumlar

Çift eğik çizgi dizisi '//', bir yeni satıra kadar olan tüm metni yorum olarak işaretler:

Kod:
int main()
{
    // Bu bir tek satırlı yorumdur.
    int a; // bu da bir tek satırlı yorumdur
    int i; // bu da başka bir tek satırlı yorumdur
}

C-Stili/Blok Yorumlar

Dizisi '/*' , yorum bloğunun başlangıcını belirtmek için kullanılır ve dizisi '*/' ise yorumun sonunu belirtir. Başlangıç ve bitiş dizileri arasındaki tüm metin yorum olarak yorumlanır, metin başka bir geçerli C++ sözdizimi olsa bile. Bu tür yorumlar bazen "C-stili" yorumlar olarak adlandırılır, çünkü bu yorum sözdizimi C++'ın öncülü olan C dilinden miras alınmıştır:

Kod:
int main()
{
    /*
    * Bu bir blok yorumdur.
    */
    int a;
}

Herhangi bir blok yorumda istediğiniz her şeyi yazabilirsiniz. Derleyici '*/' sembolünü bulduğunda, blok yorumunu sonlandırır:

Kod:
int main()
{
        /* Bir blok yorumu, sembol /* içerir
        Not: Derleyici ikinci /*'den etkilenmez, ancak blok-sonu sembolü ulaşıldığında yorum sona erer.
        */
        int a;
}

Yukarıdaki örnek geçerli C++ (ve C) kodudur. Ancak, bir blok yorum içinde ek '/*' bulunması bazı derleyicilerde uyarı almanıza neden olabilir.
Blok yorumlar aynı zamanda tek bir satır içinde başlayıp bitirilebilir. Örneğin:

Kod:
void SomeFunction(/* argüman 1 */ int a, /* argüman 2 */ int b);

Yorumların Önemi

Tüm programlama dillerinde olduğu gibi, yorumlar birkaç avantaj sağlar:
  • Kodu daha okunabilir ve bakımını kolaylaştıracak şekilde açık dokümantasyon sağlar
  • Kodu amaç ve işlevselliğini açıklar
  • Kodun geçmişi veya mantığı hakkında detaylar sunar
  • Telif hakkı/ruhsatlar, proje notları, özel teşekkürler, katkıda bulunan kişilerin kredileri vb. gibi bilgileri doğrudan kaynak kodunda bulundurur

Ancak yorumların da bazı dezavantajları vardır:
  • Koddaki değişiklikleri yansıtacak şekilde yorumların da güncellenmesi gerekir
  • Aşırı yorumlar, kodun okunabilirliğini azaltabilir
  • Yorum ihtiyacını azaltmak için, açıklayıcı isimler kullanarak kendiliğinden dokümantasyon sağlayan kod yazmak faydalıdır. Basit bir örnek, değişkenler, fonksiyonlar ve türler için açıklayıcı isimlerin kullanılmasıdır. Mantıksal olarak ilişkili görevleri ayrık fonksiyonlara ayırmak da bu yaklaşımla uyumludur.


Kodun Devre Dışı Bırakılmasında Kullanılan Yorum İşaretleri

Geliştirme sürecinde, yorumlar kodun bazı bölümlerini hızlıca devre dışı bırakmak için de kullanılabilir, bu sayede kodu silmeden test edebilir veya hata ayıklayabilirsiniz. Bu genellikle "yorum satırı" olarak adlandırılır ve geçici düzenlemeler dışında iyi bir stil olarak kabul edilmez.
Benzer şekilde, bir kod parçasının eski sürümlerini referans amacıyla yorum olarak tutmak hoş karşılanmaz, çünkü bu dosyaları karıştırır ve sürümleme sistemi aracılığıyla kodun geçmişini incelemekle kıyaslandığında pek bir değer sunmaz.
  


Hızlı Menü:


Konuyu Okuyanlar:
1 Ziyaretçi