
CHƯƠNG 11: ĐỐI TƯỢNG VÀ LỚP
•Nội dung
Đối tượng
Lớp
Con trỏ this
Hàm thiết lập
Hàm hủy bỏ
Hàm thiết lập sao chép
Các thành phần tĩnh
Hàm bạn và lớp bạn

Đối tượng
• Đối tượng là một khái niệm trong lập trình hướng đối tượng biểu thị sự liên kết
giữa dữ liệu và các thủ tục (gọi là phương thức) thao tác trên dữ liệu
• ĐỐI TƯỢNG = DỮ LIỆU + PHƯƠNG THỨC
Lớp
Lớp là một mô tả nhóm các đối tượng có cùng bản chất, ngược lại mỗi một đối
tượng là một biểu hiện cụ thể cho những mô tả trừu tượng đó.
• khai báo lớp
• class <tên lớp>
• {
• private:
• <khai báo các thành phần riêng trong từng đối tượng>
• public:
• <khai báo các thành phần công cộng trong từng đối tượng>
• };
• <định nghĩa các hàm thành phần chưa được định nghĩa bên trong khai báo lớp>
Các thành phần của lớp có thể là thành phần dữ liệu (thuộc tính) hoặc hàm thành
phần (phương thức).

Thành phần dữ liệu được khai báo giống như khai báo biến
Hàm thành phần được khai báo giống như khai báo hàm trong C. Có hai
cách định nghĩa một hàm thành phần: định nghĩa trong lớp và ngoài lớp.
Tất cả các thành phần được liệt kê sau từ khóa private hoặc protected chỉ
được truy nhập bởi các thành phần bên trong lớp đó. Còn tất cả các thành
phần được liệt kê sau từ khóa public có thể được truy nhập trong bất kỳ
hàm nào.
•Ví dụ 1:
• Class Diem
• {
• private:
• int x, y; // Các thành phần dữ liệu riêng
• public:
• //Các hàm thành phần công cộng
• void Nhap();
• void Xuat();
• };

• //Định nghĩa các hàm thành phần bên ngoài lớp
• void Diem::Nhap()
• { cout <<“Nhap toa do:”;
• cin >> x >> y;
• }
• void Diem::Xuat()
• { cout << x <<“,” << y <<“\n”;
• }
• //Hàm chính
• void main()
• {
• Diem a; //Khai báo một đối tượng a thuộc lớp Diem
• a.Nhap(); //Đối tượng a thực hiện lời gọi hàm thành phần Nhap()
• a.Xuat();
• }
•Chú ý: Lời gọi hàm thành phần luôn có một và chỉ một tham số ngầm định
là đối tượng thực hiện lời gọi hàm. Như vậy các thành phần dữ liệu viết
trong các hàm thành phần được hiểu là thuộc đối tượng dùng làm tham số
ngầm định trong lời gọi hàm.

Con trỏ this
• C++ sử dụng con trỏ đặc biệt this trong các hàm thành phần. Con trỏ này
luôn trỏ tới đối tượng dùng làm tham số ngầm định trong lời gọi hàm thành
phần.
•Ví dụ 2: Các hàm thành phần Nhap() và Xuat() có thể viết theo cách khác
như sau
• void Diem::Nhap()
• {
• cout <<“Nhap toa do:”;
• cin >> this->x >> this->y;
• }
• void Diem::Xuat()
• {
• cout << this->x <<“,” << this->y <<“\n”;
• }

