Anahtar fark: C ve C ++ iki farklı bilgisayar programlama dilidir. C ++, C programlama dilinden geliştirilmiştir; ancak doğada oldukça farklılar. En belirgin fark, C'nin yordam yönelimli bir dil olduğu, oysa C ++'ın hem yordamsal hem de nesne yönelimli programlamayı desteklediğinden, genellikle hibrit dil olarak adlandırılır.
C şu anda kullanılan en eski programlama dillerinden biridir ve en yaygın olarak kullanılan programlama dillerinden biridir. Assembly dilinde daha önce kodlanmış uygulamalarda sürekli olarak kullanılmıştır. Bu, UNIX bilgisayar işletim sistemini de içerir. C ayrıca doğrudan veya dolaylı olarak C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python ve Unix'in C kabuğu gibi programlama dillerinin çoğunu da etkilemiştir. Tüm bu yeni dillere rağmen, C hala popüler bir programlama dilidir.
C ++ başlangıçta C'ye bir geliştirme olarak başlamıştır. C ile uyumlu bir kaynak ve bağlantı olacak şekilde tasarlanmıştır. Ancak, sınıflar, sanal fonksiyonlar, operatör aşırı yüklenmesi, çoklu kalıtım, şablonlar, istisnaların işlenmesi vb. Eklenmiştir. kendi başına bir programlama dili olarak kabul edilecek kadar. İlk olarak 1998 yılında ISO / IEC 14882: 1998 sertifikalı programlama dili olarak onaylandı. Bugün, C ++ şimdi yaygın olarak donanım tasarımı için kullanılıyor.
C, deyim sonlandırıcı olarak noktalı virgül (;) ve ifade bloklarını gruplamak için küme parantezleri ({}) kullanan genel amaçlı bir programlama dilidir. Yapısal programlama için olanaklara sahiptir ve tasarımı, tipik makine talimatlarına göre verimli bir şekilde eşleştirilebilecek yapılar sağlar. Ayrıca, sözcüksel değişken kapsamı ve özyinelemesine izin verir ve pek çok istenmeyen işlemi önleyen statik bir tür sisteme sahiptir.
Bununla birlikte, C ++ 'a kıyasla, C'nin sayısız sınırlılığı vardır. C nesne yönelimli olmadığı için OOPS kavramlarını desteklemez. C işlevi ve operatör aşırı yüklenmesini desteklemiyor. Yapıların içindeki fonksiyonları kullanamaz. Sanal işlevleri ve referans değişkenleri veya istisna işlemeyi desteklemez. Ayrıca referans değişkenleri desteklemiyor. Ek olarak, C ayrıca kapsülleme veya veri güvenliğini sağlamaz. Buna karşılık, C ++ tüm bu özellikleri destekliyor.
İki dil aynı zamanda adres hafızası, giriş-çıkış ve GUI programlama şeklinde de farklılık gösterir. Örneğin, C bellek ayırmak ve ayırmak için calloc (), malloc () ve free () işlevlerini kullanır, C ++ ise yeni ve sil komutlarını kullanır. C, giriş ve çıkış için scanf () ve printf () öğesini kullanırken C ++ cin >> ve cout << operatörlerini kullanır. C, GUI programlama için GTK aracını, C ++ ise GUI programlama için Qt araçlarını destekler. Diğer bir fark, C'nin tüm değişkenleri programın başındaki açıklamasını gerektirmesidir, oysa C ++ 'da değişkenler programın herhangi bir yerinde bildirilebilir.
Ek olarak, C ++ 'ın öğrenmesi daha kolay olduğu düşünülür, çünkü C' den daha kullanıcı dostu olduğundan, C ++ 'ın özellikle C çerçevesine yeni başlayan biri için kodlamayı kolaylaştıran sayısız ek işlevi vardır. Bununla birlikte, birçok kişi bunun gerçekten önemli olduğunu iddia ediyor. İki dil o kadar farklıdır ki aslında birbirinden bağımsız iki farklı dil olabilir. Akılda tutulması gereken bir şey, C'nin C ++ 'dan çok daha yapılandırılmış olduğu ve C ++' nın C 'den daha anlamlı ve soyut olacak şekilde tasarlandığı.
C ve C ++ arasındaki karşılaştırma:
C | C ++ | |
Kurulmuş | 1969-1973 arasında AT&T Bell Laboratuarlarında Dennis Ritchie tarafından geliştirildi. | Bjarne Stroustrup tarafından 1979'da başlayan Bell Laboratuarlarında geliştirildi. |
Kaynak kodu | Serbest biçimli program kaynak kodu | Başlangıçta C programlama dilinden geliştirilmiştir |
Dil | Prosedür Odaklı dil | Hem prosedürel hem de nesne yönelimli programlama paradigmalarını destekler; bu nedenle genellikle hibrit dil olarak adlandırılır. |
yaklaşım | Yukarıdan aşağıya yaklaşımı takip eder. | Aşağıdan yukarıya yaklaşımı takip eder. |
ilişki | C, bir C ++ alt kümesidir. C ++ kodunu çalıştıramaz. | C ++, C'nin üstüdür. C ++, C kodunun çoğunu çalıştıramazken, C kodunun çoğunu çalıştırabilir. |
sürücü | İşlev odaklı dil | Nesneye dayalı dil |
odak | Veri yerine yöntem ya da işleme odaklanır. | Metod veya prosedür yerine verilere odaklanır. |
Yapı taşları | Fonksiyonlar | Nesneler |
Anahtar kelimeler | 32 Anahtar Kelime İçeriyor | 52 Anahtar Kelime İçeriyor |
OOPS Kavramları | 'C' dili işleme yönelik bir dil olduğundan, sınıf, nesne, Kalıtım, Polimorfizm, Veri gizleme, vb. OOPS kavramlarını desteklemez. | Nesne yönelimli bir dil olan C ++; sınıfı, nesneyi, veri gizlemeyi, polimorfizmi, Kalıtım, soyutlamayı vb. Destekler. |
Fonksiyonlar |
|
|
Hafıza fonksiyonları | Belleği ayırmak ve ayırmak için calloc (), malloc () ve free () işlevlerini kullanır. | Operatörleri yeni kullanır ve aynı amaç için siler. |
kapsülleme | Desteklemiyor. Veri ve fonksiyonlar ayrı ve serbest varlıklardır. | Kapsülleme destekler. Veri ve işlevler, bir nesne biçiminde bir araya toplanır. Nesneler sınıfı, nesnenin yapısının bir planını sunar. |
Bilgi gizleme | C bilgi gizlemeyi desteklemiyor. Burada, veriler serbest varlıklardır ve dış kodla değiştirilebilir. | Kapsülleme, veri yapılarının ve operatörlerin amaçlandığı şekilde kullanılmasını sağlamak için verileri gizler. |
Veri | Yerleşik ve ilkel veri türlerini destekler. Nesne yönelimli olmadığından veriler güvende değil | Hem yerleşik hem de kullanıcı tanımlı veri türlerini destekler. Veriler C ++ ile güvende (gizli) |
seviye | Düşük seviyeli dil | Orta seviye dil |
Giriş çıkış | 'C' dili giriş ve çıkış için scanf () ve printf () işlevini kullanır. | 'C ++' dili giriş ve çıkış için cin >> ve cout << operatörlerini kullanır. |
Değişkenlerin Beyanı | C, tüm değişkenleri programın başında bildirmeyi gerektirir. | C ++ 'da değişkenler kullanımdan önce programın herhangi bir yerinde bildirilebilir. |
Çoklu Beyan | Küresel değişkenlerin Çoklu Beyanına izin verilir. | Global değişkenlerin Çoklu Beyanına izin verilmez. |
haritalama | Veri ve İşlev arasındaki eşleme zor ve karmaşıktır. | Veri ve İşlev arasındaki Eşleme "Nesneler" kullanılarak kullanılabilir |
GUI programlama | C GUI programlama için GTK aracını destekler | C ++ GUI programlama için Qt araçlarını destekler |
miras | Kalıtım C de mümkün değildir | Kalıtım C ++ ile mümkündür |
Dosya uzantısı | .C dosya uzantisi var | .Cpp dosya uzantisi var |
Varsayılan başlık dosyası | C dilinde kullanılan varsayılan başlık dosyası stdio.h | C ++ 'da kullanılan varsayılan başlık dosyası iosteam.h'dir. |
C ve C ++ Arasındaki Bazı Farklılık Örnekleri:
Örnekler | C | C ++ |
Değişken bildirim | Sadece en üstte: int i; (i = 10; i <10; i ++) | Programın herhangi bir yerinde: (int i = 10; i <10; i ++) |
Bellek ayırma | Malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Yeni: int * x = yeni int; int * x_array = yeni int [10]; |
Belleği Serbest Bırakmak | Ücretsiz: serbest (x); serbest (x_array); | Sil: x silmek; [] x_array silmek; |