Một số khác biệt chính:
- Mối quan hệ: C là subset của C++ (gần như). Code C hợp lệ thường biên dịch được trên C++.
- Paradigm: C — thủ tục (procedural). C++ — hướng đối tượng (OOP) + generic + thủ tục.
- Khối xây dựng cơ bản: C dùng hàm. C++ dùng đối tượng (class/struct).
- Tham chiếu biến: C không có reference (
&). C++ có. - Quản lý bộ nhớ: C dùng
malloc/free. C++ dùngnew/delete(và smart pointer, RAII). - Xử lý lỗi: C không có cơ chế chuẩn (dùng mã trả về, errno). C++ có exception handling (
try/catch/throw). - Nạp chồng (Overloading): C không hỗ trợ nạp chồng hàm/toán tử. C++ hỗ trợ cả hai.
- Lập trình generic: C không có. C++ có template.
- Namespace: C không có. C++ có
namespacetránh xung đột tên. - Boolean: C99 có
_Bool/<stdbool.h>. C++ cóboolbuiltin. - Struct: C struct chỉ chứa dữ liệu. C++ struct = class (mặc định public), có thể có method, constructor, inheritance.