Title Image

Blog Logo

🌱 C++ Default Arguments - Đối số mặc định

🌱 C++ Default Arguments - Đối số mặc định

Trong lập trình C++, chúng ta có thể cung cấp các giá trị mắc định cho các tham số đầu vào của hàm.

  • Nếu một hàm có đối số mặc định được gọi, mà không truyền đối số vào, thì các tham số mặc định sẽ được sử dụng.
  • Nếu các đối số được truyền vào hàm thì các đối số mặc định sẽ bị bỏ qua.

    👉 Làm việc với default arguments

cpp-default-parameters
Cách default argument hoạt động trong C++

    Chúng ta có thể hiểu hoạt động của các đối số mặc định từ hình ảnh trên:

  1. Case 1. Khi hàm temp() được gọi, cả hai tham số mặc định đều được hàm sử dụng.
  2. Case 2. Khi temp(6) được gọi, đối số đầu tiên sẽ có giá trị là 6, giá trị mặc định sẽ được sử dụng cho tham số thứ 2.
  3. Case 3. Khi temp(6, -2.3) được gọi, cả 2 tham số mặc định đều bị bỏ qua, i = 6 và f = -2.3.
  4. Case 4. Khi temp(3.4) được gọi, 3.4 sẽ được hiểu là tham số đầu tiên, còn tham số thứ 2 sẽ lấy giá trị mặc định. Vì tham số đầu tiên là kiểu int, nên giá trị sẽ bị ép kiểu thành 3.

    👉 Ví dụ sử dụng default argument

#include <iostream>
using namespace std;

// defining the default arguments
void display(char = '*', int = 3);

int main()
{
    int count = 5;

    cout << "No argument passed: ";
    // *, 3 will be parameters
    display();
    
    cout << "First argument passed: ";
     // #, 3 will be parameters
    display('#');
    
    cout << "Both arguments passed: ";
    // $, 5 will be parameters
    display('$', count);
    return 0;
}

void display(char c, int count)
{
    for(int i = 1; i <= count; ++i)
    {
        cout << c;
    }
    cout << endl;
}

    Run This Code    

    ➥ Các bạn có thể bấm "Run This Code", kết quả hiển thị trên màn hình console như sau.

No argument passed: ***
First argument passed: ###
Both arguments passed: $$$$$

    ➤ Cách chương trình hoạt động,

  • Hàm display() được gọi với không tham số nào được truyền vào, hàm sử dụng cả 2 tham số mặc định, c = '*'n = 1.
  • Hàm display('#') được gọi với 1 đối số, c = '#', và tham số còn lại sẽ là mặc định, n = 1.
  • Hàm display('#', count) được gọi với 2 đối số, và tham số mặc định sẽ không được sử dụng.

Lưu ý: Chúng ta có thể định nghĩa các tham số mặc định trong phần định nghĩa hàm, hoặc trong phần function prototype - nguyên mẫu hàm.

    👉 Một số lưu ý khi sử dụng Default Argument

    ① Khi sử dụng giá trị mặc định cho một tham số, tất cả các tham số còn lại cũng cần có giá trị mặc định.

// Invalid
void add(int a, int b = 3, int c, int d);

// Invalid
void add(int a, int b = 3, int c, int d = 4);

// Valid
void add(int a, int c, int b = 3, int d = 4);

    ② Nếu định nghĩa hàm với tham số mặc định tại vị trí definition thay vì fucntion prototype, hàm cần được define trước lệnh gọi hàm.

// Invalid code

int main() {
    // function call
    display();
}

void display(char c = '*', int count = 5) {
    // code
}

>>>= Follow ngay =<<<

Để nhận được những bài học miễn phí mới nhất nhé 😊

Chúc các bạn học tập tốt 😊

                                        

Đăng nhận xét

0 Nhận xét