CPP Hello World!

Yeni Bir Proje Oluşturma ve Çalıştırma

Bu yazımızda ilk programımızı yazacağız. Visual Studio Community’i çalıştırıyoruz. Karşımıza aşağıdaki gibi bir ekran gelecektir. Buradan sağ en altta bulunan Create a new project butonuna tıklıyoruz.

Daha sonra açılan pencereden Console App seçeneğini seçiyoruz. Bu seçenek ile konsol üzerinde çalışacak bir uygulamayı yapabiliriz.

Açılan pencerde projemize ismini veriyoruz.

Create butonuna tıkladığımızda projemiz oluşacaktır.

Karşımıza hazır kodların bulunduğu bir pencere çıkacaktır. Programımız çalıştırmak için yeşil üçgenlerden birine tıklıyoruz. Hangi modda çalşacağını seçmek içinse kırmızı kutunun sol kısmındaki debug/release x64/x86 seçeneklerinden birini seçiyoruz.

  • x86 : 32 bit
  • x64 : 64 bit
  • debug : Hata ayıklama
  • release : Hata ayıklama kapalı

debug modda derlenirken hataların ayıklanabilmesi için daha farklı bir şekilde derleniyor. Yani programın hızını yavaşlatacak bazı etmenler bulunuyor. Release de derlenirken program çalışabileceği en hızlı şekilde derleniyor.

Yeşil oka basarak programımızı çalıştırdığımızda karşımızda “Hello World!” yazan siyah bir konsol ekranı gelecektir.

Hello World!

Kodumuzu incelemeye başlıyalım. Öncelikle // ile başlayan tüm satırları görmezden gelebiliriz. Bu satırlar sadece insanın okuması için konmuş yorumlardır. Compiler tarafından önemsenmeyecektir.

// Hello World.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file

Onları çıkardığımızda geriye şu satırlar kaldı

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

#include <iostream> komutu bir preprocessor komutudur. Kod derlenmeden önce iostream adındaki header dosyasını bu dosyanın baş kısmına ekliyor. Böylece compiler bu dosyayı okurken içerdiği kütüphanelerin fonksiyonları objelerini bilebilir ve buna göre davranabilir. Eğer iostream kütüphanesini include etmeseydik cout objesini kullanamayacaktır.

iostream, “input output stream” anlamına gelmektedir. Konsol ekranına bir şeyler yazdırmak için veya konsol ekranından bir veri alabilmek için bu kütüphaneyi kullanıyoruz. Bu kütüphane C++ ile beraber gelen temel kütüphanelerden biridir. Bu kütüphanenin namespace‘i std dir.

int main(){} bizim ana fonksiyonumuzdur. Her C++ programında sadece 1 adet bulanması gerekir. Ana fonksiyonu programın giriş noktasıdır. Programımız çalışmaya bu fonksiyondan başlar. Bu fonksiyon dönüş değeri olarak tamsayı(int) döndürür. İşletim sistemi bu dönen değere göre programın nasıl bittiğini (başarılı mı başarısız mı) anlar.

return 0; programın başarıyla çalıştığını belirtir.
return 1; programın başarılı bir şekilde çalışmadığını belirtir.

int main()
{
    ...
    return 0;
}

Bu aslında her main fonksiyonunda olmalı visual studioda bunun yazmamasının sebebi orayı otamatik olarak return 0; kabul etmesinden dolayıdır.

Son olarak konsola çıktı aldığımız satıra bakalım.

  • std::cout, std namespace’indeki cout objesini ifade eder.
  • << bir operatördür(daha sonra göreceğiz)
  • “Hello World\n” bir karakter literal’dir.
  • \n satır atlama anlamına geliyor.
    std::cout << "Hello World!\n";

Özet

Burada temel olarak 3 parça var.

  1. parça #include <iostream> : bu kodla iostream kütüphanesini projemize ekledik
  2. parça int main(){} bu bizim programımızın çalışmaya başladığı ana fonksiyonumuzdur.
  3. parça std::cout << “Hello World!\n”; bu ifadeyle de konsol ekranına “Hello World” yazdık ve bir alt satıra geçtik.

Namespace Nedir?

Ali, Selin ve Mehmet, 3 farklı kütüphane yazmış olsun. Biz bu kütüphaneleri kendi projemize include edelim. Bu 3 kütüphanede de kos() fonksiyonu bulunmakta. Bizler kendi projemizde bu fonksiyonu kullanmak istediğimizde compiler bize şunu diyecektir. Siz, bana kos fonksiyonunu kullan diyorsunuz ama ben bunun kime ait olduğunu bilmiyorum. Böyle bir şey bulamadım.

#include "ali"
#include "selin"
#include "mehmet"

int main(){
    kos();//hata
    kos();//hata
    kos();//hata
    return 0;
}

İşte bu karışıklığı önlemek için namespace (ad alanı) kullanıyoruz. Namespace’ler tıpkı bir soyad gibidir. Fonksiyonlarımızı ve diğer kodlarımızı bu adın alanının içine yazarız ve daha sonra dışarıdan bu fonksiyonu çağırırken önce namespace’ini sonra ismini deriz. Yukarıdaki kodun doğur yazımı aşağıdaki gibidir

#include "ali"
#include "selin"
#include "mehmet"

int main(){
    ali::kos(); // ali'ye ait kos fonksiyonu
    selin::kos(); // selin'e ait kos fonksiyonu
    mehmet::kos(); // mehmet'e ait kos fonksiyonu

    return 0;
}

Fonksiyon Nedir?

Fonksiyonu bir makina olarak düşünebiliriz. Makinamızın girdileri ve çıktıları var (hiç girdi çıktı olmasa da olur). Fonksiyonumuzu çağırdığımızda bu girdi çıktılara göre işlemler yapıp bir sonuç elde ediyor.

Örnek olarak 2 sayının aritmetik ortalaması düşünün. Fonksiyonumuza 2 tane sayı vereceğiz. Fonksiyonu bunları alıp matematiksel işlem yapıp bize 1 sayı verecek. Tüm mantık bundan ibaret.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *