C++
Bu maddedeki bilgilerin doğrulanabilmesi için ek kaynaklar gerekli. (Ekim 2020) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin) |
![]() | |
Paradigması | çok paradigmalı: yordamsal, nesne yönelimli, genel |
---|---|
İlk çıkışı | 1983 |
Tasarımcı | Bjarne Stroustrup |
Geliştirici |
Bjarne Stroustrup Bell Labs ISO/IEC JTC1/SC22/WG21 |
Kararlı sürüm |
C++20 ISO/IEC 14882:2020 / 15 Aralık 2020 (2020) |
Önizleme sürümü | C++23 |
Tip sistemi | statik, emniyetsiz, yalın |
Önemli uygulamaları | GCC, LLVM Clang, Microsoft Visual C++, Embarcadero C++ Builder, Intel C++ Compiler, IBM XL C++, EDG |
Lehçeleri | ISO/IEC C++ 1998, ISO/IEC C++ 2003, ISO/IEC C++ 2011 |
Etkilendikleri | C, Simula, Ada 83, ALGOL 68, CLU, ML |
Etkiledikleri | Perl, LPC, Lua, Pike, Ada 95, Java, PHP, D, C99, C#, Falcon |
İşletim sistemi | Çapraz platform |
Olağan dosya uzantıları |
.h .hh .hpp .hxx .h++ .h++ .C .cc .cpp .cxx .c++ .c++ |
Web sitesi | http://isocpp.org/ |
Ailesi | C |
C++ (Türkçe telaffuz: ce artı artı, İngilizce telaffuz: si plas plas), Bell Laboratuvarlarından Bjarne Stroustrup tarafından 1979 yılından itibaren geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir. İlk olarak C With Classes (Sınıflarla C) olarak adlandırılmış, 1983 yılında ismi C++[1] olarak değiştirilmiştir.
Genel olarak her C programı aynı zamanda bir C++ programıdır, ancak her C++ programı bir C programı değildir. Bu durumun bazı istisnaları mevcuttur. C++'ı C'den ayıran özellikler C++'ın nesne paradigması kullanılarak programlamaya olanak tanıyan özelliklerdir. Sınıflar sayesinde yeni veri türleri yaratılabilir veya var olan türlerden yenileri türetilebilir. Ayrıca çokbiçimlilik sayesinde bir sınıf tanımıyla yazılmış kod, o sınıf türünden türetilmiş yeni sınıflarla da çalışabilir.
Yordamsal Altyapı[değiştir | kaynağı değiştir]
İşleçler[değiştir | kaynağı değiştir]
C++'ın C'den devraldığı ve onu geliştirdiği yapılardan biridir. Kısaca, özel olarak anlamlandırılmış fonksiyonlar kümesidir. Ancak bu fonksiyonlar, alışılageldik şekilde çağırılmaz, dilin semantik yapısı içerisinde özel olarak değerlendirilir. operatörler çoğunlukla iki nesnenin arasına özel bir işaret konulmasıyla çağrılır. Örneğin, iki nesnenin toplanması için iki nesnenin arasına '+' işareti konulması yeterlidir. Bu işaret, derleyiciye '+' operatör fonksiyonunun çağırılacağını ifade eder. C'den farklı olarak, C++'ta operatörlerin çoğu aşırı yükleme yoluyla özelleştirilebilir.
Önişlemci[değiştir | kaynağı değiştir]
C++ Program kaynak kodlarının derlenmesi üç aşamadan oluşur: Önişlemci, kodun dönüştürülmesi ve bağlama. İlk aşama olan önişlemciyi basit bir yorumlayıcı olarak görülebilir. Bu aşamada, birtakım direktifler yardımıyla derlenecek kodlarda basit sözcüksel değişiklikler yapılabilir.
Önişlemci direktifleri # karakteriyle başlar, bu karakterden sonrası önişlemci tarafından yorumlanır ve bu özel karakterden önce beyaz boşluk(tab ve boşluk) dışında bir şey olmaması gerekir. Bu direktifler yardımıyla derlenecek kodlar üzerinde birtakım kurallar belirlenebilir. Ayrıca dosyaya bir başka dosyayı dahil etmek veya işlemciye özel direktifler vermek gibi işlemler içinde kullanılabilir.
Nesne Paradigması[değiştir | kaynağı değiştir]
Sınıflar ve Nesneler[değiştir | kaynağı değiştir]
Kalıtlama[değiştir | kaynağı değiştir]
Kalıtlama diğer veri türlerinin özelliklerinden bir veri türü elde etmeyi sağlar. Temel sınıftan kalıtım, "public", "protected" ve "private" olarak ilan edilebilir. Bu erişim belirteci ilgili olmayan ve türetilmiş sınıfların kalıtımını "public" ve "protected" üyelerine aktarabilir. Kalıtım ifadesi tek başına kullanılırsa "public" kalıtımı ifade eder. Diğer iki kalıtım türü "public" kalıtımdan daha az kullanılır. Geçiş belirteci ihmal edilirse "class" "private" olarak, "struct" "public" olarak kalıtılır. Temel sınıflar sanal olarak ilan edilebilir, bu sanal kalıtım olarak adlandırılır. Sanal kalıtım çoklu kalıtımın problemlerinden sıyrılarak temel yalnızca bir örneğinin kalıtım grafiğinde olmasını sağlar.
Örnekler[değiştir | kaynağı değiştir]
Yorum Satırları[değiştir | kaynağı değiştir]
Yorum satırları bilgisayar tarafından çalıştırılmaz. Bunlar kodu okuyanın anlamasını kolaylaştırmak için eklenir.
// Tek satirdan olusan bir yorum
/*
Birden
fazla
satirdan olusan yorumlar
*/
Merhaba Dünya[değiştir | kaynağı değiştir]
Bu program terminal ekranına "Merhaba, dunya!" yazacaktır.
#include <iostream>
int main() {
std::cout << "Merhaba, dunya!\n";
}
İşleçleri Aşırı Yükleme (DOS ya da Process Prompta)[değiştir | kaynağı değiştir]
#include <iostream>
namespace matematik {
class Karmasik {
public:
Karmasik() = default;
Karmasik(const double reel, const double sanal)
: reel_(reel), sanal_(sanal) {}
Karmasik &operator+=(const Karmasik &diger);
double real() const { return reel_; }
void real(const double t) { reel_ = t; }
double sanal() const { return sanal_; }
void sanal(const double t) { sanal_ = t; }
friend std::ostream &operator<<(std::ostream &os, const Karmasik &k);
private:
double reel_ = 0;
double sanal_ = 0;
};
Karmasik &Karmasik::operator+=(const Karmasik &diger) {
reel_ += diger.reel_;
sanal_ += diger.sanal_;
return *this;
}
std::ostream &operator<<(std::ostream &os, const Karmasik &k) {
return os << k.reel_ << '+' << k.sanal_ << 'i' << '\n';
}
Karmasik operator+(const Karmasik &sol, const Karmasik &sag) {
return Karmasik(sag.real() + sol.real(), sag.sanal() + sol.sanal());
}
}
int main() {
using namespace matematik;
Karmasik c;
std::cout << c; // 0 + 0i
Karmasik ilk(1, 0), ikinci(0, 1);
Karmasik sonuc = ilk + ikinci;
std::cout << sonuc; // 1 + 1i
ilk += ikinci;
std::cout << ilk; // 1 + 1i
return 0;
}
Ayrıca bakınız[değiştir | kaynağı değiştir]
Kaynakça[değiştir | kaynağı değiştir]
- ^ ++ sonek işleci C programlama dilinde sayısal bir değişkenin değerini bir artırmak anlamındadır.
Dış bağlantılar[değiştir | kaynağı değiştir]
- Standart C++'ı Yeni Bir Dil Olarak Öğrenmek8 Nisan 2014 tarihinde Wayback Machine sitesinde arşivlendi.—Bjarne Stroustrup'un yazısının çevirisi
- CppReference.com 25 Ekim 2008 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- Cplusplus.com22 Nisan 2020 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- parashift.com13 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- C++ Language Reference 25 Temmuz 2015 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)