# ✏️ C++ Syntax

Her programlama dilinde olduğu gibi C++ da kendine has kod yazım kurallarına sahiptir. Kod yazmaya başlamadan önce bu kuralları öğrenmeniz gerektiğinden bu derste **C++ Sytnax** konusunu işliyoruz.

## 1. Temel Kavramlar

C++ programlama dilinde temel kavramların anlamlarını öğrenerek başlayalım.

* **Nesne (Object):** Nesneler durumlar ve davranışlara sahip olan varlıklardır. Örn: Personel bir nesne olabilir. Yaşı ve Cinsiyeti vardır. Belirli bir görevi yapar.
* **Sınıf (Class):** Nesnelerin durum ve davranışlarını bir şablonda belirtmek için kullanılan nesneden bağımsız soyut yapılardır. Nesneler bu şablonlardan örneklenir.
* **Method:** Temel olarak bir davranışı ifade eder.  Bir sınıf bir çok methodu içerebilir. Verilerin işlendiği ve tüm eylemlerin yürütüldüğü bölümlerdir.
* **Özellikler (Instance Variables):** Her nesne kendine özgü niteliklere sahiptir. Nesnelere ait durumlar tanımlanan bu niteliklerde tutulmaktadır.

## 2. C++ Program Yapısı

Her programlama dilinde olduğu gibi "Merhaba Dünya" ile dilin yapısını inceleyelim.

```cpp
#include <iostream>
using namespace std;
 
// main() main programı çalıştıran ana metotdur. 
int main() {
   cout << "Merhaba Dünya"; //Ekrana merhaba dunya yazdırılır
   return 0;
}
```

**`#`** ifadesi ile başlayan ifadeler C++’da önişlemci olarak bilinir.  **#include** ile C++ için gerekli olan kütüphane bilgileri tanımlanır ve programa dahil edilir. **\<iostream>** kütüphanesi temel işlemler için gerekli bir kütüphanedir.

**using namespace std;** (std değiştirilebilir) Nesne yönelimli programlama için Namespace tanımlaması yapmak için kullanılır. İsteğe bağlıdır. Yukarıda tanımlanmazsa kullanılan method ile tanımlanır.

**main()** program çalıştırmanın başladığı yerdir. Her C ++ programının main() olarak bilinen bir yöntemi olması gerekir. Bilgisayarınızdaki programın yürütülmesine başladığınızda uygulamanın giriş noktası olarak anılır. i**nt** kısmı yöntemin dönüş türüdür. Fonksiyon adından sonraki boş parantezler `()`, bunun bir fonksiyon olduğunu ve herhangi bir bağımsız değişken gerektirmediğini, başka bir deyişle, değerleri iletmek için hiçbir parametrenin olmadığını gösterir. &#x20;

Ayrıca  tek satırlık yorumlar **//** ile başlar ve satırın sonunda durur.

Sonraki satır **cout << “Merhaba Dünya”;** Ekranda **Merhaba Dünya** yazısını göstermek için kullanılır. Özetle ekrana **cout <<** ile çıktılarınızı verebilirsiniz.

Son olarak da  **return 0;** programı sonlandırmak için dönüş değeri 0 girilip sonlandırılır.&#x20;

## 2. C++ Derleme ve Çalıştırma

C++ editörünüz ile yazdığınız kodları çalıştırabilmek için dosya uzantısını **.cpp** olarak kaydediniz. (Örn: test.cpp)

Bir komut istemi açın ve dosyayı kaydettiğiniz dizine gidin. Bunun için bulunduğunuz dizindeki pencerenin adres yerine **cmd** yazarak enterlayabilir veya direkt **cmd** üzerinden `cd` komutuyla ilgili dizine gidebilirsiniz. (Örn: cd Desktop)

Artık komut satırına aşağıdaki kodları yazarak programınızı derleyebilir ve aynı dizinde oluşacak olan **.exe** uzantılı dosyanız ile programınızı çalıştırabilirsiniz.

```bash
g++ test.cpp -o test.exe
```

## 3. Noktalı Virgüller ve Bloklar

C++ da ifadeler noktalı virgülle sonlandırılır.  Yazılan her satırın sonuna noktalı virgül koymak gerekir.

```cpp
a=10;
b=a;
kareAl(5);
```

Bloklar, süslü parantezler ile gösterilir ve mantıksal olarak kümelenmiş ifadeleri göstermek için kullanılır.

```cpp
{
   cout << "Merhaba Dunya";
   return 0;
}
```

## 4. C++ Tanımlayıcılar

Bir C ++ tanımlayıcısı; bir değişken, işlev, sınıf, modül veya herhangi bir kullanıcı tanımlı ögeyi tanımlamak için kullanılan bir addır.  Bir tanımlayıcı;

* A’dan Z’ye veya a’dan z’ye Türkçe karakter olmayan harflerden,
* Alt çizgi (\_)
* Sayılardan

oluşabilir.

{% hint style="warning" %}
**C++**, tanımlayıcılarda @, % gibi noktalama karakterlerine ve tanımlayıcı adının sayı ile başlamasına izin vermez. Ayrıca tanımlayıcı büyük küçük harf duyarlıdır.  sayi1 ile Sayi1, SAYI1 tanımlamaları aynı değildir.
{% endhint %}

Örnek değişkenler;&#x20;

* Sayi1
* \_ad
* ornek
* Toplam
* say10

## 5. C++ Anahtar Kelimeler

Aşağıdaki anahtar kelimeler C++ tarafından rezerve edilmiştir. C++’da tanımlayıcı yazarken bu anahtar kelimeler **kullanılamaz.** :exclamation:&#x20;

|               |           |                   |          |
| ------------- | --------- | ----------------- | -------- |
| asm           | else      | new               | this     |
| auto          | enum      | operator          | throw    |
| bool          | explicit  | private           | true     |
| break         | export    | protected         | try      |
| case          | extern    | public            | typedef  |
| catch         | false     | register          | typeid   |
| char          | float     | reinterpret\_cast | typename |
| class         | for       | return            | union    |
| const         | friend    | short             | unsigned |
| const\_cast   | goto      | signed            | using    |
| continue      | if        | sizeof            | virtual  |
| default       | inline    | static            | void     |
| delete        | int       | static\_cast      | volatile |
| do            | long      | struct            | wchar\_t |
| double        | mutable   | switch            | while    |
| dynamic\_cast | namespace | template          |          |
