C++ OOP từ cơ bản đến nâng cao (Phần 3)
Xin chào các bạn, hôm nay chúng ta lại quay trở lại series lập trình C++ hướng đối tượng từ cơ bản đến nâng cao, ở bài trước chúng ta đã tìm hiểu đến static member function rồi. Trong bài hôm nay chúng ta sẽ cùng đi tìm hiểu những khái niệm sau:
- Hàm bạn — Lớp bạn
- Nạp chồng toán tử
Như chúng ta đã biết chỉ có hàm thành viên mới truy cập được các thuộc tính của lớp. Vậy làm sao để truy cập thuộc tính của class từ một hàm bên ngoài, đó là sử dụng hàm friend chúng ta cùng đi xem ví dụ sau để hiểu rõ hơn nhé.
Phương thức của một class có thể là hàm bạn của một class khác. Ví dụ:
Class bạn
class Z
{
friend class X;}
Tất cả các phương thức của X là bạn của Z.
Nạp chồng toán tử(Operator overloading)
Như các bạn đã biết là ở một số kiểu dữ liệu như là int, float…khi cộng trừ 2 số với nhau , trình biên dịch sẽ tự hiểu nên làm gì. Nhưng với những kiểu dữ liệu do người dùng tự định nghĩa thì ta phải định nghĩa toán tử lại cho chúng.
Đây là các loại toán tử trong C++
Có thể phân ra làm 4 dạng như sau:
- Cộng, trừ, nhân, chia
- Nhập, xuất
- So sánh
- Tiền tố/ hậu tố
Toán tử không có trong C++
- (::) Khai báo method
- (.) Truy cập thuộc tính
Cách cài đặt toán tử: có 3 cách như sau
- Sử dụng member-function: Tức là ở trong phương thức của class
- Sử dụng nonnon-member function: Viết ở ngoài class, sử dụng getter/setter để truy xuất vào thuộc tình của class đó
- Sử dụng friend member function
Sau đình mình sẽ ví dụ sử dụng 3 cách cài đặt trên để cho các bạn dễ hình dung
Ví dụ 1: Toán tử số đối dùng member-function
Ví dụ 2: Toán tử số đối dùng non-member function
Ví dụ 3: Toán tử sử dụng friend-member function