Phân biệt sự khác nhau giữa C với C++

Home » c/c++ » Phân biệt sự khác nhau giữa C với C++

Phân biệt sự khác nhau giữa C với C++.

(Xem thêm: Tự học lập trình C, C++ qua code ví dụ)

Khi học lập trình, hẳn nhiều lúc bạn nhầm lẫn giữa ngôn ngữ lập trình C với C++. Nhiều lúc người ta viết gộp lại thành C/C++. Điều này sẽ khiến bạn hiểu nhầm rằng 2 ngôn ngữ này là một. Tuy nhiên thực tế không phải thế, bạn cần phân biệt rõ hai ngôn ngữ này bởi có những dự án phần mềm chỉ viết bằng ngôn ngữ C.

C và C++ là gì?

C và C++ là hai ngôn ngữ lập trình khác nhau.

C là ngôn ngữ lập trình hướng cấu trúc được ra đời trước C++.

C++ là ngôn ngữ lập trình thừa kế, mở rộng từ C. Do đó tất cả những gì đúng với C thì cũng đều đúng với C++. Đây cũng chính là lý do vì sau người ta hay gộp chung lại thành C/C++

Điểm giống nhau giữa C với C++

Chính vì C++ được mở rộng từ C nên điểm giống nhau của chúng sẽ là tất cả những gì có từ ngôn ngữ C:

  • Có cùng cú pháp và cách viết code.
  • Cấu trúc code giống nhau
  • Bộ biên dịch code giống nhau (không phải 100%, tuy nhiên các bộ biên dịch/compiler mới đều hỗ trợ cả 2 ngôn ngữ)
  • Mô hình bộ nhớ giống nhau và đều khá gần với phần cứng
  • Sử dụng chung các khái niệm như stack, heap, file-scope, static variables …
  • ..

Điểm khác nhau giữa C với C++

Điểm khác nhau giữa C với C++ chính là những điểm mà C++ được mở rộng thêm. (Các mở rộng của C++ phần lớn nhằm tới mục đích lập trình hướng đối tượng)

Dưới đây là chi tiết các điểm khác nhau giữa C với C++

C C++
Phát triển bởi Dennis Ritchie từ 1969 tới 1973. Phát triển bởi Bjarne Stroustrup vào 1979.
Không hỗ trợ lập trình hướng đối tượng. Hỗ trợ lập trình hướng đối tượng như: đa hình, đóng gói, kế thừa, đối tượng
Đuôi mở rộng file c là .c Đuôi mở rộng file C++ là .cpp (dùng .c cũng được)
Là cha của C++ Là con của C. Code C có thể chạy bởi C++ nhưng code C++ không thể chạy bởi C.
Có 32 từ khóa Ngoài 32 từ khóa của C còn bổ sung thêm nhiều từ khóa mới
C is a function driven language because C is a procedural programming language. C++ is an object driven language because it is an object oriented programming.
Không hỗ trợ xử lý exception trực tiếp Hỗ trợ xử lý exception

Okay, Done!

Tags: