C++ OOP từ cơ bản đến nâng cao (Phần 3)

Tuan Binh
blog.tuanbinh
Published in
2 min readOct 29, 2017

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

--

--