02/10/2018, 14:19

[Học OOP] Bài 1: Các đặc điểm mới trong c++

Bài viết này là phần 1 trong 9 bài của Series Học lập trình hướng đối tượng OOP Học lập trình hướng đối tượng OOP [Học OOP] Bài 1: Các đặc điểm mới trong c++ [Học OOP] Bài 2: Tổng quan về lập trình hướng đối tượng [Học OOP] Bài 3: Lớp trong lập trình hướng đối tượng [Học OOP] ...

Bài viết này là phần 1 trong 9 bài của Series Học lập trình hướng đối tượng OOP

Học lập trình hướng đối tượng OOP
  • [Học OOP] Bài 1: Các đặc điểm mới trong c++
  • [Học OOP] Bài 2: Tổng quan về lập trình hướng đối tượng
  • [Học OOP] Bài 3: Lớp trong lập trình hướng đối tượng
  • [Học OOP] Bài 4: Constructor, destructor và Copy constructor trong hướng đối tượng c++
  • [Học OOP] Bài 5: Static trong hướng đối tượng c++
  • [Học OOP] Bài 6: Hàm bạn, lớp bạn trong hướng đối tượng c++
  • [Học OOP] Bài 7: Overload toán tử trong Lập trình hướng đối tượng c++
  • [Học OOP] Bài 8: Kế thừa trong lập trình hướng đối tượng c++ (Phần 1)
  • [Học OOP] Bài 9: Hiểu kế thừa như thế nào cho đúng trong hướng đối tượng (Phần 2)

1. Toán tử phạm vi (::)

Toán tử phạm vi :: được dùng để truy cập các biến toàn cục trong trường hợp có biến cục bộ trùng tên.

Ví dụ:

  • x=::y+1301;

Cụ thể hơn:

Kết quả khi chạy chương trình trên là “10 20“. Do ::g được quy định sử dụng biến toàn cục khi có toán tử phạm vi.

2. Tham số mặc nhiên

Tham số mặc nhiên là tham số có sẵn giá trị, và nó được dùng khi người dùng không cung cấp đối số, lúc này giá trị mặc định sẽ được sử dụng.

Cách khai báo các bạn có thể tham khảo hàm xuat() trong ví dụ dưới đây:

Kết quả

Chú ý void xuat(int a, int b = 222, int c = 333), những vị trí int b = 222, int c = 333 được gán sẵn giá trị và nó được dùng khi người dùng cung không đầy đủ đối số.

Những trường hợp khai báo tham số mặc nhiên không thành công

ví dụ  void xuat(int a=111, int b, int c) tham số mặc nhiên phải được khai báo theo thứ tự lần lượt từ phải sang trái.

Tóm lại:

  • Nếu cung cấp đủ tham số -> dùng tham số truyền vào.
  • Nếu không đủ tham số -> dùng tham số mặc nhiên.

3. Tái định nghĩa hàm (Function Overloading)

Quy tắc overloading: Các hàm trùng tên nhưng phải khác nhau về tham số (bao gồm số lượng, thứ tự, và kiểu dữ liệu).

ví dụ: Bạn muốn viết hàm tìm max cho kiểu int và double thông thường bạn sẽ khai báo 2 hàm như sau:

Tuy nhiên bạn có thể sử dụng Function Overloading trong trường hợp này như sau:

Như quy tắc đã nêu bên trên chỉ cần khác nhau về tham số, bao gồm số lượng, thứ tự, và kiểu dữ liệu.

chương trình sẽ tự chọn hàm phù hợp với kiểu tham số mà bạn gọi:

4. Hàm Inline

Hàm inline hay còn gọi là hàm nội tuyến.

Nó yêu cầu trình biên dịch copy code vào trong chương trình thay vì thực hiện lời gọi hàm như thông thường, nó giúp giảm thời gian chạy chương trình. Các bạn lưu ý chỉ dùng hàm inline đối với hàm có cấu trúc đơn giản, ví dụ như sau:

0