Tek Cümlede C++
C++, kaynak kodunuzu doğrudan yerel makine koduna dönüştüren, statik tipli ve derlenen bir programlama dilidir. Bu tek tasarım kararı - yorumlayıcı yok, programınız ile CPU arasında sanal makine yok - C++'ı yazabileceğiniz en hızlı dillerden biri yapan ve kesinlikle yavaş olamayacak yazılımlara güç vermesinin nedenidir.
İşte alışılagelmiş ilk program. Hemen burada çalıştırın:
Burada bir betik dilinden daha fazla yapı var ve bu bilinçli bir tercih - C++, açık olmanız karşılığında size hassas denetim verir. Sonraki birkaç sayfada bunun her parçasını tek tek açacağız.
C++ Neden Hızlıdır
Çoğu betik dili, kodunuzu çalışma zamanında talimatları okuyup yürüten bir yorumlayıcı ya da sanal makine aracılığıyla çalıştırır. C++ bunların hepsini atlar:
- Bir derleyici (
g++veyaclang++gibi).cppkaynağınızı okur ve onu belirli bir işlemci ve işletim sistemi için makine talimatlarına çevirir. - Sonuç, CPU'nun doğrudan çalıştırdığı bağımsız bir yürütülebilir dosyadır - kodunuz ile donanım arasında hiçbir şey durmaz.
Program çalışırken hiçbir çeviri gerçekleşmediği için, C++ programları anında başlar ve işlemcinin tam hızında çalışır. Ayrıca, daha üst düzey dillerin sizden bilinçli olarak gizlediği bellek ve donanım üzerinde ince ayarlı bir denetim elde edersiniz.
Bedeli şu: o makine kodu tek bir platform için üretilir. Windows'ta derlenen bir yürütülebilir dosya Mac'te çalışmaz - kaynağı her hedef için yeniden derlersiniz. (Bunu, herhangi bir JVM üzerinde çalışan taşınabilir bayt koduna derlenen Java ile karşılaştırın.)
Statik Tipli ve Çok Paradigmalı
İki özellik, C++ kodunun nasıl göründüğünü ve nasıl hissettirdiğini şekillendirir.
Statik tipli olması, her değişkenin derleme zamanında bilinen bir tipe sahip olduğu ve derleyicinin tiplerinizi program daha çalışmadan denetlediği anlamına gelir:
count, tüm ömrü boyunca bir int'tir; içine "hello" saklamaya çalışmak derlenmezdi. Bu, başlangıçta daha fazla yazma pahasına, bir dizi hatayı erkenden yakalar.
Çok paradigmalı olması, C++'ın size tek bir stili dayatmadığı anlamına gelir. Düz prosedürel kod yazabilir, mantığı sınıflarda düzenleyebilir (nesne yönelimli) ya da genel ve yeniden kullanılabilir kod için şablonlar kullanabilirsiniz. Gerçek programların çoğu üçünü de harmanlar. Bu esneklik güçlüdür, ancak aynı zamanda C++'ın öğrenilecek geniş bir yüzeyi olduğu anlamına da gelir - bunu her seferinde bir kavram olarak ele alacağız.
C++ Ne İçin Kullanılır
C++, performansın ve denetimin pazarlık konusu olmadığı her yerde karşımıza çıkar:
- Oyun motorları - Unreal Engine, Unity'nin çekirdeği ve çoğu AAA oyun kodu.
- Sistem yazılımı - işletim sistemleri, aygıt sürücüleri ve Chrome ile Firefox gibi tarayıcılar.
- Yüksek performanslı hizmetler - mikrosaniyelerin önemli olduğu veritabanları, alım-satım sistemleri ve arama altyapısı.
- Gömülü ve donanım - arabalar, dronlar, tıbbi cihazlar ve IoT için bellenim (firmware).
Bir yazılımın hızlı olması, kısıtlı belleğe sığması ya da doğrudan donanımla konuşması gerekiyorsa, büyük olasılıkla C++ ile yazılmıştır.
C++ C Değildir (Ama Oradan Başladı)
C++, 1980'lerde C'den "sınıflarla C" olarak doğdu ve büyük ölçüde bir üst küme olmaya devam ediyor - geçerli C kodunun çoğu C++ olarak derlenir. Ancak dil o zamandan beri muazzam ölçüde büyüdü.
C++; nesne yönelimli programlama, genel kod için şablonlar, referanslar, istisnalar ve kullanıma hazır araçlarla dolu zengin bir standart kütüphane ekler. Bu parça, bunlardan birini, vector'ü kullanır - kendi belleğini yöneten, yeniden boyutlandırılabilir bir dizi; C'de elle inşa etmeniz gereken bir şey:
Modern C++ (C++11, C++17 ve C++20 standartları), dili C köklerinden daha güvenli ve daha anlamlı kılmak için bunun gibi araçlara büyük ölçüde dayanır. Yeni başlayanların yaptığı yaygın bir hata, standart kütüphane sorunu sizin için zaten çözmüşken C tarzı C++ yazmaktır - elle bellek yönetimi, her yerde ham diziler. Bu dokümanlar boyunca modern stili tercih edeceğiz.
Sonraki: C++ Kurulumu
C++'ı kendi makinenizde yazıp çalıştırmak için bir derleyiciye ihtiyacınız var - genellikle g++ (GCC'nin bir parçası), clang++ veya Windows'ta MSVC araç zinciri. Sonraki sayfa, bunlardan birini kurma ve terminalinizden çalıştığını doğrulama adımlarını anlatıyor.
Sıkça Sorulan Sorular
C++ ne için kullanılır?
C++, hızın ve denetimin önemli olduğu yazılımlara güç verir: oyun motorları (Unreal, Unity'nin çekirdeği), işletim sistemleri, tarayıcılar (Chrome, Firefox), veritabanları, alım-satım sistemleri ve gömülü cihazlar. Gücü, sınıflar, şablonlar ve standart kütüphane gibi üst düzey özellikler sunarken donanıma yakın çalışabilmesinden gelir.
C++ derlenen bir dil mi yoksa yorumlanan bir dil mi?
C++ derlenen bir dildir. g++ veya clang++ gibi bir derleyici, kaynak kodunuzu belirli bir CPU ve işletim sistemi için doğrudan yerel makine koduna çevirir ve bağımsız bir yürütülebilir dosya üretir. Programınız ile işlemci arasında hiçbir yorumlayıcı ya da sanal makine yoktur; C++'ın bu kadar hızlı olmasının nedeni de budur.
C ile C++ arasındaki fark nedir?
C++, "sınıflarla C" olarak başladı ve büyük ölçüde C'nin bir üst kümesidir, bu nedenle çoğu C kodu C++ olarak derlenir. Büyük eklemeler şunlardır: nesne yönelimli programlama (sınıflar ve kalıtım), şablonlar, standart kütüphane (vector ve map gibi kapsayıcılar), referanslar, istisnalar ve C'de bulunmayan birçok güvenlik ve kolaylık özelliği.