# C++

Adres: https://softwaredictionary.org/tr/terimler/cpp
Kategori: Programlama Dilleri
Son güncelleme: 2026-09-30
Okunuşu: si plas plas

Kısaca: C++, C'yi sınıflar ve şablonlarla genişleten; bellek ve performans üzerinde düşük seviyeli kontrolü koruyan, derlenen ve statik tipli bir dildir.

## C++ nedir?

C++, Bjarne Stroustrup tarafından Bell Labs'te 1979'da "C with Classes" adıyla başlatılan ve 1983'te C++ adını alan, genel amaçlı bir programlama dilidir. Ad bir programcı şakasıdır: `++`, C'de bir değeri bir artıran operatördür. ISO tarafından standartlaştırılır ve yaklaşık üç yılda bir C++17, C++20 ve C++23 gibi yeni bir sürüm çıkar.

C++ statik tiplidir ve yerel makine koduna derlenir. Birkaç farklı stili destekler: C gibi yordamsal kod, sınıflar ve kalıtımla nesne yönelimli kod ve fonksiyon ile sınıfların tipe özgü sürümlerini derleme zamanında üreten şablonlarla genel (generic) kod. Çöp toplayıcı yoktur; bunun yerine modern C++, bir nesnenin kapsamdan çıktığında yıkıcısında (destructor) belleğini ya da diğer kaynaklarını otomatik bırakmasına dayanan RAII'ye (Resource Acquisition Is Initialization) güvenir. `std::unique_ptr` ve `std::shared_ptr` gibi akıllı işaretçiler bu fikri öbek (heap) belleğine uygular; bu yüzden elle yazılmış `new` ve `delete` nadiren gerekir.

C++; oyun motorlarında, web tarayıcılarında, veritabanlarında, alım satım sistemlerinde, gömülü cihazlarda ve makine öğrenmesi kütüphanelerinin performans açısından kritik çekirdeklerinde yaygındır. "Sıfır maliyetli soyutlamalar" ilkesi, kullanmadığınız özellikler için çalışma zamanı bedeli ödememeniz gerektiği anlamına gelir. C++ ile çalışmak, tam donanımlı profesyonel bir atölyeye sahip olmak gibidir: neredeyse her şeyi yapabilir, ama hangi aletlerin ne zaman güvenle kullanılacağını öğrenmek zaman alır.

C++ artık yalnızca "ek özellikli C" değildir. C kodunun çoğunu derleyebilse de deyimsel modern C++ oldukça farklı görünür; ham diziler ve elle bellek yönetimi yerine `std::vector` ve `std::string` gibi standart kapsayıcıları kullanır. İsim dışında C# ile de ilgisi yoktur: C#, çöp toplayıcılı yönetilen bir çalışma ortamında çalışan ayrı bir dildir.

## Önemli noktalar

- C++ yerel makine koduna derlenir ve performans üzerinde ince ayarlı kontrol sunar.
- Yordamsal, nesne yönelimli ve genel programlama stillerini destekler.
- Bellek, çöp toplayıcı yerine kapsam tabanlı RAII ve akıllı işaretçilerle yönetilir.
- Oyun motorlarında, tarayıcılarda, veritabanlarında ve diğer performans açısından kritik yazılımlarda yaygındır.

## Örnek: Standart kapsayıcılar belleği sizin yerinize yönetir

```cpp
#include <iostream>
#include <string>
#include <vector>

int main() {
    // std::vector frees its own memory: no manual delete needed
    std::vector<std::string> names = {"Ada", "Grace", "Alan"};
    names.push_back("Barbara");

    for (const auto& name : names) {
        std::cout << "Hello, " << name << "\n";
    }
    return 0;
}
```

## Sık sorulan sorular

**C++ öğrenmek diğer dillerden daha mı zor?**

C++ geniş olduğu ve belleğe doğrudan kontrol verdiği için genellikle daha karmaşık dillerden biri sayılır. Birçok öğrenci, standart kapsayıcıları ve akıllı işaretçileri kullanan modern C++'ın daha küçük bir alt kümesiyle başlar ve oradan ilerler.

**C++ ile C# arasındaki fark nedir?**

İkisi ayrı dillerdir. C++ yerel koda derlenir ve belleği çöp toplayıcı olmadan yönetir; C# ise otomatik çöp toplamalı .NET çalışma ortamında çalışır.

**C++'ta RAII ne anlama gelir?**

RAII (Resource Acquisition Is Initialization), bellek, dosya ya da kilit gibi bir kaynağı bir nesnenin yaşam süresine bağlamak demektir. Nesne kapsamdan çıktığında kaynak, nesnenin yıkıcısında otomatik olarak serbest bırakılır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
