C++: Revizyonlar arasındaki fark

İçerik silindi İçerik eklendi
Erdem (mesaj | katkılar)
Erdem (mesaj | katkılar)
Değişiklik özeti yok
1. satır:
{{C Arti Arti Ile Programlama/Hakkinda}}
'''C++''' (okunuşu: ''si-plas-plas''), 1980'lerin başlarında [[Bjarne Stroustrup]] tarafından geliştirilen [[C_programlama_dili|C]]'yi kapsayan ve [[nesne yönelimli programlama]]ya olanak sağlayan sınıf tanımlarıyla ilerleten, yaygın olarak kullanılan, genel amaçlı bir [[Programlama dilleri|programlama dilidir]]. Çoklu paradigma, nesne yönelimlidir. İlk olarak ''C With Classes'' olarak adlandırılmış, daha sonra C'deki herhangi bir sayısal değişkenin değerini bir arttırmaya yarayan ve özellikle döngü yapılarında çok sık kullanılan 'i++' ifadesine benzer biçimde C++ olarak adlandırılmıştır.
{| width="70%" right="130px" border="0" cellspacing="0" cellpadding="5"
 
|-
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 ve C++'ın nesne yönelimli bir dil olmasına da olanak sağlayan en temel özellik, [[class]]lardır. Sınıflar sayesinde yeni veri türleri yaratılabilir veya varolan türlerden yenileri türetilebilir. Ayrıca polimorfizm 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.
| bgcolor="#E0E0F0" align="center" colspan="2" |
 
{| width="100%" bgcolor="#E0E0F0"
C++ pek çok programlama dili kavramını kapsadığı için başlangıçta alışması zor bir dil gibi gelebilir. Tüm özelliklerini ve inceliklerini kavramak ve uzmanlaşmak ise çok uzun bir süreci gerektirir. Zorluğu görebilmek için aşağıdaki, C++ FAQ Lite'a bakabilirsiniz.
|-
 
| bgcolor="#E0E0F0" valign="middle" width="90%" align="center" | <font size="+1">C++ İle Programlama : Bu kitap hakkında</font>
C++, [[operator overloading]], [[default parameters]], [[function overloading]], [[single inheritance]], [[polymorphism]], [[multiple inheritance]] özelliklerine sahiptir. C++ dilinin standart kütüphanesi [[Standard Template Library]] (Standart Şablon Kütüphanesi)'dir.
''[[Programming_languages_bookshelf|Programlama dili serisinden bir kitap]]''
 
|-
==Sınıflar==
|}
Class yapısı sayesinde yeni türler tanımlanabilir. Class genel olarak struct'a çok benzer. C++'ta tek farkı, ön tanımlı olarak erişim tipinin '''private''' olmasıdır. Yani C++ ile gelen class yapısı C'nin struct yapısının biraz daha gelişmişidir.
|- bgcolor="lightyellow" valign="top" colspan="2"
 
| {{Altbolum|name=Programming:C plus plus V3/About that book/Contents|color=#E0E0F0|bordercolor=darkblue|bgcolor=white}}
==Derleyiciler ve IDE'ler==
|-
En yaygın kullanılan C++ [[derleyici]]leri şunlardır:
|}
 
* [[GCC]] ( http://gcc.gnu.org )
* [[Microsoft]] Visual C++ (IDE)
* [[Borland]] C++ Builder (IDE)
* Watcom C++
* Dj C++
 
C++ programları yazmak için kullanabileceğiniz IDE'ler şunlardır:
* [http://wiki.linux-sevenler.org/index.php/NASIL_Emacs_Kullanımına_Giriş Emacs]
* VIM
* [http://www.codeblocks.org CodeBlocks]
* [http://www.bloodshed.net Dev-C++]
* [http://msdn.microsoft.com/vstudio/express/visualc/default.aspx Visual C++ (Express)]
* [http://anjuta.sourceforge.net Anjuta]
Ayrıca [[CINT]] gibi çeşitli C++ [[yorumlayıcı]]ları da bulunmaktadır.
 
==C++'ta İşlevleri Aşırı Yüklemek (Operator Overloading)==
C++'ta C programlama dilinde farklı olarak işleçler aşırı yüklenebilir. Yani C++ ile operatörlere özel anlam yüklenebilir. Aşağıdaki örnekte + operatörüne yeni bir anlam yüklenerek iki tane karmaşık sayı nesnesini toplayabilecek şekilde aşırı yüklenmiştir.
 
==Örnekler==
===Merhaba Dünya===
 
#include <iostream>
int main()
{
std::cout << "Merhaba Dünya!" << endl;
}
 
===Merhaba Dünya 2===
 
<pre>
#include <iostream>
 
using namespace std; // cout, endl v.b. komutların tek seferde belirtilmesi icin kullanılır.
int main()
{
cout << "Merhaba Dünya!" << endl;
}
</pre>
 
=== Merhaba Dünya 3 ===
Nesne yaklaşımlı merhaba dünya örneği:
<pre>
#include <iostream>
using std::cout;
 
 
class Dunya
{
public:
Dunya () { cout << "Merhaba\n"; }
~Dunya () { cout << "Güle güle\n";}
};
 
Dunya dunya;
 
 
int main ()
{}
</pre>
 
===İşleçleri Aşırı Yükleme (Operator Overloading)===
 
<pre>
#include <iostream>
using namespace std;
 
class Karmasik
{
public:
Karmasik (double reel, double sanal = 1)
: reel_ (reel), sanal_ (sanal)
{}
Karmasik & Karmasik::operator+ (const Karmasik & diger)
{
reel_ += diger.reel_;
sanal_ += diger.sanal_;
return * this;
}
void Yazdir () const;
private:
double reel_, sanal_;
};
 
Karmasik operator+= (const Karmasik & birinci, const Karmasik & ikinci)
{
Karmasik sonuc(birinci);
sonuc += ikinci;
return sonuc;
}
 
void Karmasik::Yazdir () const
{
cout << "reel = " << reel_ << '\n' << "sanal = " << sanal_
<< '\n';
}
 
int main()
{
Karmasik ilk (1, 1), ikinci (5, 1.7), sonuc(1, 7);
sonuc = ilk + ikinci;
sonuc.Yazdir ();
return 0;
}
 
</pre>
 
==Dış bağlantılar==
* [http://acehreli.org/~ali/turkcecpp/cpp_ogrenmek.html Standart C++'ı Yeni Bir Dil Olarak Öğrenmek] Bjarne Stroustrup'un yazısının çevirisi
* [http://www.cppreference.com CppReference.com] (İngilizce)
* [http://www.cplusplus.com Cplusplus.com] (İngilizce)
* [http://www.parashift.com/c++-faq-lite/ parashift.com] (İngilizce)
 
[[Kategori:Nesne yönelimli programlama]]
[[Kategori:Programlama dilleri]]
 
[[bg:Си плюс плюс]]
[[bs:C++]]
[[ca:C++]]
[[cs:C++]]
[[da:C++]]
[[de:C++]]
[[en:C++]]
[[eo:C++]]
[[es:C++]]
[[et:C++]]
[[fa:سی‌پلاس‌پلاس]]
[[fi:C++]]
[[fr:C++]]
[[gl:C++]]
[[he:C plus plus]]
[[hr:C++]]
[[id:C++]]
[[it:C++]]
[[ja:C++]]
[[ko:C++]]
[[la:C++]]
[[lb:C++]]
[[lt:C++]]
[[nl:C++]]
[[nn:C++]]
[[no:C++]]
[[pl:C++]]
[[pt:C++]]
[[ro:C++]]
[[ru:C++]]
[[simple:C++]]
[[sk:C++]]
[[sl:C++]]
[[sv:C++]]
[[uk:Cі-плюс-плюс]]
[[vi:C++]]
[[zh:C++]]
"https://tr.wikibooks.org/wiki/C%2B%2B" sayfasından alınmıştır