# ✏️ 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          |          |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://derslik.kerteriz.net/c++/c++-syntax.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
