Lớp(class) và Đối tượng trong C++
Mục đích chính của C++ là bổ sung thêm tính hướng đối tượng (object) cho Ngôn ngữ lập trình C và các Lớp (class) là tính năng trung tâm của C++ mà hỗ trợ lập trình hướng đối tượng và thường được gọi là các kiểu người dùng tự định nghĩa (user-defined).
Một lớp được sử dụng để xác định form của một đối tượng và nó kết nối sự biểu diễn dữ liệu và các phương thức để thao tác các dữ liệu đó vào trong một package gọn gàng. Dữ liệu và hàm bên trong một lớp được gọi là các thành viên của lớp đó.
Định nghĩa Lớp trong C++
Khi bạn định nghĩa một lớp, bạn định nghĩa một blueprint cho một kiểu dữ liệu. Điều này không thực sự định nghĩa bất kỳ dữ liệu nào, nhưng nó định nghĩa ý nghĩa tên lớp là gì, đó là, những gì một đối tượng của lớp đó sẽ bao gồm và những hoạt động nào có thể được thực hiện trên một đối tượng đó.
Một định nghĩa lớp trong C++ bắt đầu với từ khóa class, được theo sau bởi tên lớp và phần thân lớp, được bao quanh trong một cặp dấu ngoặc móc. Một định nghĩa lớp phải được theo sau: hoặc bởi một dấu chấm phảy hoặc một danh sách các khai báo. Ví dụ, chúng ta định nghĩa kiểu dữ liệu Box bởi sử dụng từ khóa class trong C++ như sau:
class Box
{
public: double chieudai;
// chieu dai cua hop
double chieurong;
// chieu rong cua hop
double chieucao;
// chieu cao cua hop
};
Từ khóa public quyết định các thuộc tính truy cập của các thành viên lớp mà theo sau nó. Một thành viên public có thể được truy cập từ bên ngoài lớp bất cứ đâu bên trong phạm vi (scope) của đối tượng lớp đó. Bạn cũng có thể xác định các thành viên của lớp là private hoặc protected sẽ được bàn luận trong chương phụ.
Định nghĩa Đối tượng trong C++
Một lớp cung cấp các blueprint cho các đối tượng, vì thế về cơ bản, một đối tượng được tạo từ một lớp. Chúng ta khai báo các đối tượng của một lớp giống đúng như chúng ta khai báo các biến của kiểu cơ bản. Các lệnh sau khai báo hai đối tượng của lớp Box:
Box Box1; // Khai bao Box1 la cua kieu Box
Box Box2; // Khai bao Box2 la cua kieu Box
Cả hai đối tượng Box1 và Box2 sẽ có bản sao của các thành viên dữ liệu (Data Member) riêng.
Truy cập các thành viên dữ liệu trong C++
Các thành viên dữ liệu public của các đối tượng của một lớp có thể được truy cập bởi sử dụng toán tử truy cập thành viên trực tiếp là dấu chấm (.). Bạn sẽ thấy rõ ràng khi xem ví dụ sau:
#include <iostream>
using namespace std;
class Box
{
public:
double chieudai; // chieu dai cua hop
double chieurong; // chieu rong cua hop
double chieucao; // chieu cao cua hop
};
int main( )
{
Box Box1; // Khai bao Box1 la cua kieu Box
Box Box2; // Khai bao Box2 la cua kieu Box
double thetich = 0.0; // Luu giu the tich cua Box vao bien thetich
//Thông số của Box1
Box1.chieucao = 5;
Box1.chieudai = 3;
Box1.chieurong = 1.5;
//Thông số của box 2
Box2.chieucao = 4;
Box2.chieudai = 5;
Box2.chieurong = 3;
//Thể tích của box 1
thetich = Box1.chieucao * Box1.chieudai * Box1.chieurong;
cout << "The tich cua Box1 la: " << thetich <<endl;
//Thể tích của box 2 thetich = Box2.chieucao * Box2.chieudai * Box2.chieurong;
cout << "The tich cua Box2 la: " << thetich <<endl;
return 0;
}
Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau hoặc sử dụng công cụ viết code C++ online này để thử code nhé.
Điểm quan trọng cần nhớ là: các thành viên private và protected không thể được truy cập một cách trực tiếp bởi sử dụng toán tử truy cập thành viên trự tiếp này. Chúng ta sẽ học cách các thành viên private và protected có thể được truy cập.
Chi tiết về Lớp & Đối tượng trong C++
Lúc này, bạn đã hiểu khá cơ bản về Lớp(class) và Đối tượng trong C++. Dưới đây là các khái niệm khá thú vị liên quan tới Lớp(class) và Đối tượng trong C++ mà bạn cần quan tâm. Bạn click vào link để xem chi tiết.
Khái niệm | Miêu tả |
---|---|
Một hàm thành viên của một lớp là một hàm có định nghĩa của nó hoặc prototype của nó bên trong định nghĩa lớp giống như bất kỳ biến nào khác | |
Một thành viên lớp có thể được định nghĩa là public, private hoặc protected. Theo mặc định, các thành viên sẽ là private | |
Một class constructor là một hàm đặc biệt trong một lớp mà được gọi khi một đối tượng mới của lớp đó được tạo. Một class destructor cũng là một hàm đặc biệt mà được gọi khi đối tượng đã tạo bị hủy | |
copy constructor là một constructor mà tạo một đối tượng bằng việc khởi tạo nó với một đối tượng của cùng lớp đó, mà đã được tạo trước đó | |
Hàm friend được cho phép truy cập tới các thành viên là private và protected của một lớp | |
Với một hàm inline, trình biên dịch cố gắng mở rộng code trong thân hàm thế chỗ cho một lời gọi tới hàm đó | |
Mỗi đối tượng có một con trỏ this đặc biệt, mà trỏ tới chính đối tượng đó | |
Một con trỏ tới một lớp được thực hiện giống hệt như cách một con trỏ tới một cấu trúc. Thực ra, một lớp là một cấu trúc với các hàm trong nó | |
Cả các thành viên dữ liệu (data member) và các thành viên hàm (function member) có thể được khai báo là static |
Theo Tutorialspoint
Bài trước: Struct trong C/C++
Bài tiếp: Hàm thành viên lớp trong C++
Bạn nên đọc
-
Top 10 lý do để học lập trình C++ trong năm 2025
-
Bài tập C++ về IF ELSE
-
Namespace trong C++
-
Toán tử trong C++
-
24 câu hỏi phỏng vấn lập trình C++ trình độ căn bản và câu trả lời
-
Đa luồng (Multithread) trong C++
-
Hướng dẫn cài Dev-C++
-
Đọc/ghi File trong C++ | fstream trong C++
-
Chuỗi (String) trong C/C++
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
Sạc không dây là gì? Nó nhanh hơn hay chậm hơn sạc dây? Danh sách smartphone Android hỗ trợ sạc không dây
Hôm qua -
4 cách kiểm tra lịch sử giao dịch BIDV trên điện thoại, máy tính
Hôm qua -
Hàm COUNTIFS, cách dùng hàm đếm ô theo nhiều điều kiện trong Excel
Hôm qua -
Cách chặn từ khóa và Hashtag trên Twitter
Hôm qua -
Cách sao chép hoặc tạo bản sao toàn bộ trang tính trong Google Sheets
Hôm qua -
Các cách làm, tùy chỉnh trong bài sẽ giúp tăng tốc Windows 10 của bạn "nhanh như gió"
Hôm qua 6 -
Valentine đen là gì? Valentine đen là ngày nào?
Hôm qua -
Cách sửa lỗi không thấy bộ điều hợp mạng trên Windows 10
Hôm qua -
Dynamic System Updates là gì?
Hôm qua -
Cách dùng Terabox lưu trữ với 1TB miễn phí
Hôm qua 5