Perbedaan utama: C dan C ++ adalah dua bahasa pemrograman komputer yang berbeda. C ++ dikembangkan dari bahasa pemrograman C; Namun mereka sangat berbeda sifatnya. Perbedaan yang paling jelas adalah bahwa C adalah bahasa berorientasi prosedur, sedangkan C ++ mendukung pemrograman prosedural dan berorientasi objek, oleh karena itu sering disebut bahasa hibrida.
C adalah salah satu bahasa pemrograman tertua yang saat ini digunakan dan merupakan salah satu bahasa pemrograman yang paling banyak digunakan. Ini telah terus-menerus digunakan dalam aplikasi yang sebelumnya dikodekan dalam bahasa assembly. Ini termasuk sistem operasi komputer UNIX. C juga secara langsung atau tidak langsung memengaruhi banyak bahasa pemrograman selanjutnya, seperti C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python, dan shell Unix's C. Terlepas dari semua bahasa baru ini, C masih tetap menjadi bahasa pemrograman yang populer.
C ++ awalnya dimulai sebagai peningkatan ke C. Ini dirancang untuk menjadi sumber-dan-tautan yang kompatibel dengan C. Namun, ia menambahkan kelas, fungsi virtual, kelebihan operator, banyak pewarisan, templat, penanganan pengecualian, dll. Akhirnya, itu dikembangkan cukup untuk dianggap sebagai bahasa pemrograman sendiri. Awalnya disahkan pada tahun 1998 sebagai bahasa pemrograman bersertifikat ISO / IEC 14882: 1998. Saat ini, C ++ sekarang umum digunakan untuk desain perangkat keras.
C adalah bahasa pemrograman tujuan umum yang menggunakan titik koma (;) sebagai terminator pernyataan, serta kurung kurawal ({}) untuk mengelompokkan blok pernyataan. Ini memiliki fasilitas untuk pemrograman terstruktur dan desainnya menyediakan konstruksi yang dapat memetakan secara efisien untuk instruksi mesin yang khas. Ini juga memungkinkan ruang lingkup variabel leksikal dan rekursi dan memiliki sistem tipe statis, yang mencegah banyak operasi yang tidak diinginkan.
Namun, dibandingkan dengan C ++, C memiliki banyak keterbatasan. Karena C tidak berorientasi objek, itu tidak mendukung konsep OOPS. C tidak mendukung fungsi dan kelebihan operator. Itu tidak dapat menggunakan fungsi di dalam struktur. Itu tidak mendukung fungsi virtual dan variabel referensi, atau penanganan pengecualian. Itu juga tidak mendukung variabel referensi. Selain itu, C juga tidak enkapsulasi atau pengamanan data. Sebagai perbandingan, C ++ mendukung semua fitur ini.
Kedua bahasa juga berbeda dalam cara fungsi memori alamat, input-output, dan pemrograman GUI. Misalnya, C menggunakan fungsi calloc (), malloc () dan free () untuk mengalokasikan dan menghapus alokasi memori, sementara C ++ menggunakan yang baru dan menghapus. C menggunakan scanf () dan printf () untuk input dan output, sedangkan C ++ menggunakan cin >> dan cout << operator. C mendukung alat GTK untuk pemrograman GUI, sedangkan C ++ mendukung alat Qt untuk pemrograman GUI. Perbedaan lainnya adalah bahwa C mengharuskan seseorang untuk mendeklarasikan semua variabel di bagian atas program, sedangkan di C ++, variabel dapat dideklarasikan di mana saja dalam program.
Selain itu, C ++ biasanya dianggap lebih mudah dipelajari, karena lebih ramah pengguna daripada C. C ++ juga memiliki banyak fungsi tambahan yang membuat pengkodean lebih mudah, terutama bagi seseorang yang baru menggunakan kerangka C. Namun, banyak yang mengklaim bahwa itu sebenarnya penting. Kedua bahasa itu sangat berbeda, sehingga mereka sebenarnya bisa menjadi dua bahasa yang berbeda satu sama lain. Satu hal yang perlu diingat adalah bahwa C jauh lebih terstruktur daripada C ++, sedangkan C ++ dirancang untuk lebih ekspresif dan abstrak daripada C.
Perbandingan antara C dan C ++:
C | C ++ | |
Didirikan | Dikembangkan oleh Dennis Ritchie di AT&T Bell Labs antara 1969 dan 1973. | Dikembangkan oleh Bjarne Stroustrup di Bell Labs mulai tahun 1979. |
Kode sumber | Kode sumber program format bebas | Awalnya dikembangkan dari bahasa pemrograman C |
Bahasa | Bahasa yang berorientasi prosedur | Mendukung paradigma pemrograman prosedural dan berorientasi objek; oleh karena itu sering disebut bahasa hibrida. |
Pendekatan | Mengikuti pendekatan top-down. | Mengikuti pendekatan dari bawah ke atas. |
Hubungan | C adalah himpunan bagian dari C ++. Itu tidak dapat menjalankan kode C ++. | C ++ adalah superset dari C. C ++ dapat menjalankan sebagian besar kode C sementara C tidak dapat menjalankan kode C ++. |
Mendorong | Bahasa yang digerakkan oleh fungsi | Bahasa berbasis objek |
Fokus | Berfokus pada metode atau proses daripada data. | Berfokus pada data daripada metode atau prosedur. |
Blok bangunan | Fungsi | Benda |
Kata kunci | Berisi 32 Kata Kunci | Berisi 52 Kata Kunci |
Konsep OOPS | Karena bahasa 'C' adalah bahasa yang berorientasi pada prosedur, bahasa ini tidak mendukung konsep OOPS seperti kelas, objek, Warisan, Polimorfisme, Penyembunyian data, dll. | Sebagai bahasa berorientasi objek, C ++ mendukung kelas, objek, penyembunyian data, polimorfisme, Warisan, abstraksi, dll. |
Fungsi |
|
|
Fungsi memori | Menggunakan fungsi calloc (), malloc () dan free () untuk mengalokasikan dan menghapus alokasi memori. | Menggunakan operator baru dan menghapus untuk tujuan yang sama. |
Enkapsulasi | Tidak mendukung. Data dan fungsi adalah entitas yang terpisah dan bebas. | Mendukung enkapsulasi. Data dan fungsi dirangkum bersama dalam bentuk objek. Kelas objek menyediakan cetak biru dari struktur objek. |
Menyembunyikan informasi | C tidak mendukung penyembunyian informasi. Di sini, data adalah entitas bebas dan dapat dimanipulasi dengan kode luar. | Enkapsulasi menyembunyikan data untuk memastikan bahwa struktur data dan operator digunakan sebagaimana dimaksud. |
Data | Mendukung tipe data bawaan dan primitif. Data tidak diamankan karena tidak berorientasi objek | Mendukung tipe data bawaan dan pengguna. Data diamankan (disembunyikan) di C ++ |
Tingkat | Bahasa tingkat rendah | Bahasa tingkat menengah |
Input output | Bahasa 'C' menggunakan scanf () dan printf () untuk input dan output. | Bahasa 'C ++' menggunakan cin >> dan cout << operator untuk input dan output. |
Deklarasi Variabel | C mengharuskan seseorang untuk mendeklarasikan semua variabel di bagian atas program. | Dalam C ++, variabel dapat dideklarasikan di mana saja dalam program sebelum digunakan. |
Deklarasi Berganda | Deklarasi Berganda variabel global diizinkan. | Deklarasi Berganda variabel global tidak diperbolehkan. |
Pemetaan | Pemetaan antara Data dan Fungsi sulit dan rumit. | Pemetaan antara Data dan Fungsi dapat digunakan menggunakan "Objek" |
Pemrograman GUI | C mendukung alat GTK untuk pemrograman GUI | C ++ mendukung alat Qt untuk pemrograman GUI |
Warisan | Warisan tidak dimungkinkan dalam C | Warisan dimungkinkan dalam C ++ |
Ekstensi file | Memiliki ekstensi file .c | Memiliki ekstensi file .cpp |
File header default | File header default yang digunakan dalam bahasa C adalah stdio.h | File header default yang digunakan dalam C ++ adalah iosteam.h |
Beberapa Contoh Perbedaan antara C dan C ++:
Contohnya | C | C ++ |
Deklarasi variabel | Hanya di atas: int i; untuk (i = 10; i <10; i ++) | Di mana saja dalam program ini: untuk (int i = 10; i <10; i ++) |
Alokasi memori | Malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Baru: int * x = int baru; int * x_array = new int [10]; |
Melepaskan Memori | Bebas: gratis (x); gratis (x_array); | Menghapus: hapus x; hapus [] x_array; |