Giới thiệu về C++
C++ là một ngôn ngữ lập trình đa năng mạnh mẽ được tạo ra bởi Bjarne Stroustrup như một phần mở rộng của ngôn ngữ lập trình C.
Tại sao nên học C++?
C++ vẫn là một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất trên thế giới vì nhiều lý do thuyết phục:
- Hiệu suất: C++ cung cấp hiệu suất và hiệu quả cao
- Kiểm soát: Thao tác bộ nhớ trực tiếp và kiểm soát cấp thấp
- Tính đa năng: Được sử dụng trong phát triển trò chơi, hệ điều hành, trình duyệt, v.v.
- Nền tảng: Hiểu về C++ giúp việc học các ngôn ngữ khác dễ dàng hơn
Ví dụ cú pháp cơ bản
Đây là một chương trình “Hello, World!” đơn giản bằng C++:
#include <iostream>
int main() {
std::cout << "Xin chào, Thế giới!" << std::endl;
return 0;
}
Các tính năng chính của C++
Lập trình hướng đối tượng
C++ hỗ trợ bốn nguyên tắc chính của OOP:
- Tính đóng gói
- Tính kế thừa
- Tính đa hình
- Tính trừu tượng
Ví dụ về một lớp đơn giản:
class HinhChuNhat {
private:
double chieuDai;
double chieuRong;
public:
// Hàm khởi tạo
HinhChuNhat(double d, double r) : chieuDai(d), chieuRong(r) {}
// Phương thức tính diện tích
double dienTich() {
return chieuDai * chieuRong;
}
};
Quản lý bộ nhớ
C++ cho phép bạn kiểm soát trực tiếp việc cấp phát và giải phóng bộ nhớ:
#include <iostream>
int main() {
// Cấp phát bộ nhớ động
int* arr = new int[5];
// Sử dụng bộ nhớ
for (int i = 0; i < 5; i++) {
arr[i] = i * 10;
std::cout << arr[i] << " ";
}
// Giải phóng bộ nhớ đã cấp phát
delete[] arr;
return 0;
}
Templates (Khuôn mẫu)
Templates trong C++ cho phép lập trình tổng quát:
template <typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
int main() {
// Hoạt động với các kiểu dữ liệu khác nhau
std::cout << max(10, 20) << std::endl; // int
std::cout << max(10.5, 20.5) << std::endl; // double
std::cout << max('A', 'B') << std::endl; // char
return 0;
}
Tính năng của C++ hiện đại
C++ hiện đại (C++11 trở đi) đã giới thiệu nhiều tính năng làm cho ngôn ngữ mạnh mẽ hơn và dễ sử dụng hơn:
- Suy luận kiểu tự động (Auto)
- Biểu thức Lambda
- Con trỏ thông minh (Smart pointers)
- Vòng lặp dựa trên phạm vi (Range-based for loops)
- Ngữ nghĩa di chuyển (Move semantics)
Ví dụ về các tính năng C++ hiện đại:
#include <iostream>
#include <vector>
#include <memory>
#include <algorithm>
int main() {
// Suy luận kiểu tự động
auto x = 10;
// Vector với danh sách khởi tạo
std::vector<int> numbers = {1, 2, 3, 4, 5};
// Vòng lặp dựa trên phạm vi
for (const auto& num : numbers) {
std::cout << num << " ";
}
// Biểu thức Lambda
std::for_each(numbers.begin(), numbers.end(), [](int n) {
std::cout << n * 2 << " ";
});
// Con trỏ thông minh
std::shared_ptr<int> ptr = std::make_shared<int>(100);
return 0;
}
Kết luận
C++ tiếp tục phát triển và duy trì tính phù hợp mặc dù đã hơn 40 năm tuổi. Sự kết hợp giữa hiệu suất, khả năng kiểm soát và các tính năng hiện đại làm cho nó trở thành một ngôn ngữ tuyệt vời cho nhiều ứng dụng, từ lập trình hệ thống đến phát triển trò chơi.
Cho dù bạn là người mới bắt đầu hay một lập trình viên có kinh nghiệm muốn mở rộng kỹ năng của mình, việc học C++ sẽ cung cấp cho bạn những hiểu biết quý giá về cách máy tính hoạt động và cách xây dựng phần mềm.