Hàm là một nhóm các lệnh cùng thực hiện một tác vụ. Để tìm hiểu rõ hơn về hàm trong C++ là gì, bạn đọc cùng tham khảo tiếp bài viết dưới đây của Taimienphi.vn.
Hàm trong C++
Trong C++, các hàm được sử dụng để cung cấp module cho chương trình. Sử dụng hàm để phát triển ứng dụng giúp các nhà phát triển có thể dễ dàng phát hiện, kiểm tra và sửa các lỗi.
Cú pháp hàm trong C++
Dưới đây là cú pháp định nghĩa một hàm trong C++:
Kiểu trả về-tên- hàm (tham số1, tham số2, ...)
{
// phần thân hàm
}
Trong đó:
- Kiểu trả về: gợi ý các hàm sẽ trả về, nó có thể là hàm int, char, ... hoặc thậm chí là lớp đối tượng. Ngoài ra còn có các hàm không trả về bất kỳ giá trị nào, các hàm này được đề cập với void.
- Tên hàm: là tên của hàm, sử dụng tên hàm được gọi.
- Tham số: là các biến để giữ giá trị của đối tượng được truyền khi hàm được gọi. Một hàm có thể có hoặc không chứa danh sách tham số.
- Phần thân hàm: là phần mà các lệnh mã được viết.
Dưới đây là ví dụ khai báo hàm trong C++:
// hàm để thêm 2 giá trị
void sum(int x, int y)
{
int z;
z = x + y;
cout <>
}
int main()
{
int a = 10;
int b = 20;
// gọi hàm có tên 'sum'
sum (a, b);
}
Ở đây a và b là 2 biến được gửi dưới dạng đối số của hàm sum, x và y là các tham số giữ giá trị của a và b để thực hiện thao tác cần thiết bên trong hàm.
Khai báo, định nghĩa và gọi một hàm trong C++
Khai báo hàm được thực hiện để báo cho trình biên dịch về sự tồn tại của hàm. Kiểu trả về của hàm, tên và danh sách tham số được đề cập. Phần thân hàm được viết trong định nghĩa.
Để dễ hình dung hơn, bạn đọc cùng tham khảo ví dụ dưới đây:
#include < iostream="">
sử dụng namespace std;
//khai báo hàm
int sum (int x, int y);
int main()
{
int a = 10;
int b = 20;
int c = sum (a, b); //gọi hàm
cout <>
}
//định nghĩa hàm
int sum (int x, int y)
{
trả về (x + y);
}
Trong ví dụ trên, khởi tạo hàm được khai báo, không có phần thân. Bên trong hàm main () được gọi, vì hàm trả về tổng của 2 giá trị và biến c sẽ lưu trữ kết quả.
Cuối cùng hàm được định nghĩa, trong đó phần thân hàm được chỉ định. Ngoài ra chúng ta cũng có thể khai báo và định nghĩa hàm cùng nhau, nhưng phải được thực hiện trước khi hàm được gọi.
Gọi một hàm trong C++
Để gọi một hàm bất kỳ, chúng ta sử dụng tên hàm. Nếu hàm không có đối số, chúng ta có thể hàm trực tiếp bằng tên của nó. Ngược lại nếu hàm có đối số, chúng ta có 2 cách để gọi hàm:
1. Gọi hàm theo giá trị.
2. Gọi hàm bằng tham chiếu.
Gọi hàm bằng giá trị trong C++
Trong gọi hàm bằng giá trị trong C++, chúng ta chuyển các giá trị của đối số được lưu trữ hoặc sao chép vào các tham số chính thức của hàm. Vì vậy các giá trị ban đầu không thay đổi, chỉ có tham số bên trong hàm là thay đổi.
Cho ví dụ:
void calc(int x);
int main()
{
int x = 10;
calc(x);
printf("%d", x);
}
void calc(int x)
{
x = x + 10 ;
}
Kết quả đầu ra là 10.
Trong trường hợp này biến thực x không thể thay đổi, vì chúng ta truyền đối số theo giá trị, vì vậy bản sao của x sẽ được truyền, thay đổi và giá trị sao chép đó sẽ biến mất khi hàm kết thúc (ra khỏi phạm vi). Vì vậy biến x trong hàm main () vẫn có giá trị 10.
Tuy nhiên chúng ta vẫn có thể thay đổi chương trình để sửa đổi giá trị x ban đầu bằng cách sử dụng hàm calc() để trả về giá trị, và lưu trữ giá trị đó trong x.
int calc(int x);
int main()
{
int x = 10;
x = calc(x);
printf("%d", x);
}
int calc(int x)
{
x = x + 10 ;
trả về x;
}
Kết quả đầu ra là 20.
Gọi hàm theo tham chiếu
Trong trường hợp này chúng ta truyền địa chỉ của biến làm đối số. Tham số chính thức có thể được lấy làm tham chiếu hoặc con trỏ, trong cả 2 trường hợp, chúng sẽ thay đổi các giá trị của biến ban đầu.
Cho ví dụ dưới đây:
void calc(int *p);
int main()
{
int x = 10;
calc(&x); // gửi địa chỉ của biến x làm đối số
printf("%d", x);
}
void calc(int *p)
{
*p = *p + 10;
}
Kết quả đầu ra là 20.
Bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về hàm trong C++, cách sử dụng các hàm như thế nào. Trong các bài viết tiếp theo Taimienphi.vn sẽ giới thiệu tiếp cho bạn về number trong C++.