Lập trình hướng đối tượng trong C++
1. Giới thiệu
Lập trình hướng đối tượng (OOP – Object-Oriented Programming) là một mô hình lập trình dựa trên các đối tượng. C++ hỗ trợ OOP với các khái niệm như lớp (class), đối tượng (object), kế thừa (inheritance), đa hình (polymorphism), đóng gói (encapsulation) và trừu tượng (abstraction).
2. Lớp và đối tượng
2.1. Khai báo lớp
class SinhVien {
public:
string ten;
int tuoi;
void hienThi() {
cout << "Tên: " << ten << ", Tuổi: " << tuoi << endl;
}
};
2.2. Khởi tạo đối tượng
SinhVien sv1;
sv1.ten = "Nguyen Van A";
sv1.tuoi = 20;
sv1.hienThi();
3. Hàm tạo (Constructor) và hàm hủy (Destructor)
3.1. Hàm tạo
class SinhVien {
public:
string ten;
int tuoi;
// Hàm tạo
SinhVien(string t, int age) {
ten = t;
tuoi = age;
}
void hienThi() {
cout << "Tên: " << ten << ", Tuổi: " << tuoi << endl;
}
};
Gọi hàm tạo:
SinhVien sv2("Le Thi B", 22);
sv2.hienThi();
3.2. Hàm hủy
class SinhVien {
public:
~SinhVien() {
cout << "Đối tượng bị hủy" << endl;
}
};
4. Đóng gói (Encapsulation)
Sử dụng private để bảo vệ dữ liệu:
class NhanVien {
private:
int luong;
public:
void setLuong(int l) {
luong = l;
}
int getLuong() {
return luong;
}
};
5. Kế thừa (Inheritance)
class Nguoi {
public:
string hoTen;
void gioiThieu() {
cout << "Tôi là " << hoTen << endl;
}
};
class SinhVien : public Nguoi {
public:
string maSV;
};
6. Đa hình (Polymorphism)
Dùng phương thức ảo:
class DongVat {
public:
virtual void keu() {
cout << "Động vật kêu" << endl;
}
};
class Cho : public DongVat {
public:
void keu() override {
cout << "Gâu gâu" << endl;
}
};
7. Kết luận
Lập trình hướng đối tượng giúp mã nguồn rõ ràng và dễ bảo trì hơn. Trong bài tiếp theo, chúng ta sẽ tìm hiểu về quản lý bộ nhớ trong C++.