C++

Vikipedi, özgür ansiklopedi
00.32, 30 Aralık 2016 tarihinde Selahattin ilhan (mesaj | katkılar) tarafından oluşturulmuş 17989016 numaralı sürüm (31.177.142.79 tarafından yapılan değişiklikler geri alınarak, 95.13.171.33 tarafından değiştirilmiş önceki sürüm geri getirildi.)
C++
Paradigmasıçok paradigmalı: yordamsal, nesne yönelimli, genel
İlk çıkışı1983
TasarımcıBjarne Stroustrup
GeliştiriciBjarne Stroustrup
Bell Labs
ISO/IEC JTC1/SC22/WG21
Kararlı sürümSO/IEC 14882:2011 (2011)
Önizleme sürümüC++11
Tip sistemistatik, emniyetsiz, yalın
Önemli uygulamalarıC++ Builder, clang, Comeau C/C++, GCC, Intel C++ Compiler, Microsoft Visual C++, Sun Studio
LehçeleriISO/IEC C++ 1998, ISO/IEC C++ 2003, ISO/IEC C++ 2011
EtkilendikleriC, Simula, Ada 83, ALGOL 68, CLU, ML
EtkiledikleriPerl, 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++ .cc .cpp .cxx .c++
Web sitesihttp://isocpp.org/

C++ (Türkçe okunuşu: ce artı artı, İngilizce okunuşu: 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 varolan 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.

C++ dilini öğrenmek ve daha fazla bilgi edinmek için bu maddenin Kaynaklar kısmına bakabilirsiniz.

Yordamsal Altyapı

İşleçler

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ğunu aşırı yükleme yoluyla özelleştirebilirsiniz.

Önişlemci

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, bir takı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 bir takı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ı

Sınıflar ve Nesneler

Sarmalama

Kalıtlama

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.

Çokbiçimlilik

Şablonlar

Örnekler

Yorum Satırları

//Bu tek satırlık bir C++ yorumudur.
/*
Bu
Çok
Satırlı
Bir
C++ Yorumudur.
*/

Merhaba Dünya 1

# include <iostream>
using namespace std;

int main ()
{
    cout << "!!Merhaba Dunya!!" << endl;
    return 0;
}

Merhaba Dünya 2

Nesne yaklaşımlı merhaba dünya örneği:

# include <iostream>
using namespace std;
class Dunya
{
public:
    Dunya ()  { cout << "Merhaba\n"; }
    ~Dunya () { cout << "Güle güle\n";}
};

int main ()
{
    Dunya (); //bu_bir_nesne;
    return 0;
}

İşleçleri Aşırı Yükleme (DOS ya da Process Prompta)

# include <iostream>
# include <header.h>
using namespace std;

int main ()

class Karmasik
{
public:
    Karmasik (double reel, double sanal = 1)
        : reel_ (reel), sanal_ (sanal)
    {}
    Karmasik& operator+= (Karmasik const & );

    Karmasik operator+ (Karmasik, Karmasik const & );
    
    void Yazdir () const;
private:
    double reel_, sanal_;
};

Karmasik& Karmasik::operator+= (Karmasik const & diger)
{
    reel_ += diger.reel_;
    sanal_ += diger.sanal_;
    return %d;
}

Karmasik operator+ (Karmasik birinci, Karmasik const & ikinci)
{
    return birinci += ikinci;
}

void Karmasik::Yazdir () const
{
      case;
{
    cout << "reel = " << reel_ << '\n' << "sanal = " << sanal_
         << '\n';
}
   break;
}
int main()
{
    Karmasik ilk (1, 1), ikinci (5, 1.7), sonuc(1, 7);
    sonuc = ilk + ikinci;
    sonuc.Yazdir ();
    return 0;
}

Notlar

  1. ^ ++ sonek işleci C programlama dilinde sayısal bir değişkenin değerini bir artırmak anlamındadır.

Dış bağlantılar

Vikikitap
Vikikitap
Vikikitapta bu konu hakkında daha fazla bilgi var:

Şablon:C ve C++ için tümleşik geliştirme ortamları