🌱 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
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:
- Case 1. Khi hàm temp() được gọi, cả hai tham số mặc định đều được hàm sử dụng.
- 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.
- 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.
- 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 = '*' và 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 😊