Lập trình C++ - C vs C++
Sự khác biệt giữa C với C++
Hầu hết IT trên thế giới đều biết về 2 ngôn ngữ lập trình C, C++. Như chúng ta đã biết, C++ là ngôn ngữ ra đời sau ngôn ngữ C, thực chất nó mở rộng cho ngô ngữ C nhằm tăng cường tính an toàn, cung cấp cho các lập trình viên nhiều lựa chọn hơn, đơn giản hóa lập trình ở mức cao hơn, và cung cấp một cách tiếp cận tốt hơn đối với những chương trình có quy mô lớn.
C++ cũng là ngôn ngữ lớn hơn với nhiều tính năng và phức tạp hơn so với C. Giữa C và C++ có rất nhiều khác biệt. Trong khuôn khổ bài viết này, tôi chỉ liệt kê 10 điểm khác biệt chính giữa 2 ngôn ngữ này.
STT. | C | C++ |
---|---|---|
1) | C tuân theo lập trinh kiểu thủ tục. | C ++ là đa mô hình. Nó hỗ trợ cả hai hướng thủ tục và hướng đối tượng. |
2) | Dữ liệu kém an toàn hơn. | Bạn có thể sử dụng công cụ sửa đổi cho các thành viên của lớp để làm cho nó không thể truy cập được đối với người dùng bên ngoài. |
3) | Sử dụng phương pháp tiếp cận từ trên xuống (top-down). | Sử dụng phương pháp tiếp cận từ dưới lên (bottom-up). |
4) | C không hỗ trợ quá tải hàm. | C++ hỗ trợ quá tải hàm. |
5) | Không thể khai báo hàm trong các structure. | Có thể khai báo hàm trong các structure. |
6) | Không có biến tham chiếu, chỉ hỗ trợ con trỏ. | Hỗ trợ cả biến tham chiếu và con trỏ. |
7) | Sử dụng các hàm scanf và printf để nhập xuất. | Sử dụng các hàm cin>> và cout<< để nhập xuất.. |
8) | Không thể quá tải toán tử trong C. | Có thể quá tải toán tử trong C ++. |
9) | Các chương trình C được chia thành các thủ tục và modules | Các chương trình C ++ được chia thành các hàm và các lớp. |
10) | C không cấp namespace. | C++ hỗ trợ namespace. |
11) | Bắt lỗi ngoại lệ không dễ dàng. | C++ sử dụng khối Try and Catch để bắt lỗi ngoại lệ. |
12) | Không hỗ trợ các hàm inline, thay vào đó có thể sử dụng khai báo#define | Hỗ trợ các hàm inline. |
13) | Được xem là một ngôn ngữ lập trình cấp thấp. | Được xem là sự kết hợp giữa ngôn ngữ lập trình cấp thấp và cấp cao. |
Dưới đây là danh sách các tính năng được hỗ trợ trong C++ (C không hỗ trợ).
- Classes
- Member functions
- Constructors and destructors
- Derived classes
- Virtual functions
- Abstract classes
- Access control (public, private, protected)
- friend functions
- Pointers to members
- static members
- mutable members
- Operator overloading
- References
- Templates
- Inline functions
- Default arguments
- Function overloading
- Namespaces
- Exception handling
- Run-time type identification
- // comments
- True const
- Declarations as statements
- Automatically typedef’d struct tags
- Type safe linkage
- new and delete
- bool keyword
- Safer and more robust casting