Bài viết này giải thích sự khác biệt giữa đối tượng (object) và lớp (class) trong C++.
Class trong C++
- Khối xây dựng mã để triển khai lập trình hướng đối tượng
- Kiểu dữ liệu do người dùng định nghĩa
- Chứa thành viên dữ liệu (data members) và hàm thành viên (member functions)
- Truy cập qua instance (đối tượng) của class
- Dùng để thao tác biến, định nghĩa thuộc tính hành vi của đối tượng
- Là bản thiết kế (blueprint) cho object
- Ví dụ: Class Employee có thuộc tính: tên, tuổi, ngày sinh, chức danh... (data members). Hàm: draw_salary(), get_promotion() (member functions)
- Định nghĩa bằng từ khóa
class - Thân class trong ngoặc nhọn, kết thúc bằng dấu chấm phẩy
class class_name {
// body_of_class
};
Object trong C++
- Là instance (thể hiện) của một class
- Khi định nghĩa class, bộ nhớ chưa được cấp phát
- Khi tạo object, bộ nhớ được cấp phát cho tất cả thuộc tính
- Khi class được định nghĩa, các đặc điểm của object được xác định
- Để sử dụng class, phải tạo object
- Cú pháp:
class_name object_name; - Truy cập data members và member functions qua toán tử chấm (
.) - Ví dụ:
object_name.member_function() - Public members truy cập trực tiếp bằng toán tử chấm
- Private members không truy cập trực tiếp được
public,private,protectedlà bộ kiểm soát truy cập- Hàm thành viên định nghĩa bên trong class mặc định là inline
- Hàm inline: mở rộng ngay tại chỗ gọi, giảm overhead
- Hàm non-class có thể làm inline bằng từ khóa
inline