C++ | C# |
C++ düşük seviyeli bir programlama dilidir. | C# ise üst düzey bir dildir. |
C++ makine koduna derlerken, C# CLR'ye (Ortak Dil Çalışma Zamanı) derler. | C#, JIT tarafından ASP.NET yorumlanan CLR'ye (Ortak Dil Çalışma Zamanı) 'derler'. |
C++, C'yi nesne yönelimli yeteneklerle genişleten nesne yönelimli bir programlama dilidir. | C# bileşen yönelimli bir dildir. |
C++'ta bellek yönetimi programcı tarafından manuel olarak yapılır. Bir programcı bir nesne oluşturursa, nesnenin görevi tamamlandıktan sonra onu yok etmekten sorumludur. | C#'taki çöp toplayıcı, bellek yönetimini otomatik olarak işler. Bir programcı bir nesne oluşturursa, nesnenin görevi tamamlandıktan sonra çöp toplayıcı nesneyi otomatik olarak çöpe atar. |
C++ ile yazılmış kod herhangi bir platformda çalışabilir. Bir uygulamanın doğrudan donanımla arabirim oluşturması gerektiğinde, C++ kullanılır. | C# kodu yalnızca Windows ile uyumludur. Microsoft bunu evrensel hale getirmeye çalışsa da, büyük işletim sistemleri şu anda C#'ı desteklememektedir. (Burada Windows dışında başka bir yerde çalışamaz demek istemiyor. Windows ile uyumlu olduğunu söylüyor). |
Birden çok devralma, sınıflar aracılığıyla C++'ta desteklenir. Bu, bir sınıfın aynı anda birden fazla sınıfa genişleyebileceği anlamına gelir. | Sınıflar aracılığıyla birden çok devralma C#'ta desteklenmez. |
C++'daki derleyici bağlı denetim yapmaz. Bir programcı yanlışlıkla geçersiz bir dizi dizinine erişirse, sonuç yanlış olur, ancak derleme hatası görüntülenmez. | C#'taki derleyici, dizileri bağlı iade eder. Bir programcı yanlışlıkla hatalı bir dizi dizinine erişirse, bir derleme hatası oluşur. |
C++ içindeki işaretçiler programın herhangi bir bölümünde kullanılabilir. | Yalnızca güvenli olmayan modda işaretçiler C#'ta kullanılabilir. |
Derlemeden sonra, C++ kodu doğrudan makine koduna çevrilir. | Derlemeden sonra, C# kodu ara dil koduna dönüştürülür. |
C++ geliştirmesi belirli bir mimariye bağlı kalmalı ve taşınabilir olmalıdır. | C# geliştirme basit, hızlı ve genel amaçlı olmalıdır. |