Hàm là một nhóm lệnh thực hiện một nhiệm vụ cụ thể. Để hiểu rõ hơn về hàm trong C++, hãy đọc bài viết dưới đây của Mytour.
Đặc điểm của Hàm trong ngôn ngữ lập trình C++
Hàm trong ngôn ngữ lập trình C++
Trong C++, hàm được sử dụng để tạo module cho chương trình. Việc sử dụng hàm giúp nhà phát triển dễ dàng phát hiện, kiểm thử và sửa lỗi trong ứng dụng.
Cấu trúc hàm trong C++
Dưới đây là cấu trúc định nghĩa một hàm trong ngôn ngữ lập trình C++:
Cấu trúc-Kiểu trả về-Tên hàm (Tham số1, Tham số2, ...)
{
// Nội dung hàm
}
Trong trường hợp:
- Kiểu trả về: mô tả giá trị mà hàm sẽ trả về. Nó có thể là int, char, ... hoặc thậm chí là đối tượng. Hàm void được sử dụng khi không trả về giá trị.
- Tên hàm: là tên đặt cho hàm, được sử dụng khi gọi hàm.
Dưới đây là một minh họa về cách khai báo hàm trong ngôn ngữ lập trình C++:
// Hàm tính tổng của hai giá trị
void tinhTong(int x, int y)
{
int ketQua;
ketQua = x + y;
cout <>
}
int main()
{
int giaTriMot = 10;
int giaTriHai = 20;
// Gọi hàm có tên 'tinhTong'
tinhTong(giaTriMot, giaTriHai);
}
Ở đây, a và b là hai biến được truyền dưới dạng tham số cho hàm sum, trong khi x và y là các tham số giữ giá trị của a và b để thực hiện các thao tác cần thiết bên trong hàm.
Đặc điểm, định nghĩa và gọi một hàm trong C++
Việc khai báo hàm được thực hiện để thông báo cho trình biên dịch về sự tồn tại của hàm. Nó bao gồm kiểu trả về của hàm, tên hàm và danh sách tham số. Nội dung của hàm được xác định trong phần định nghĩa.
Để hình dung dễ dàng hơn, mời bạn 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 soThuNhat = 10;
int soThuHai = 20;
int ketQua = sum(soThuNhat, soThuHai); // 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, hàm được khai báo nhưng chưa có phần thân. Trong hàm main(), hàm được gọi và kết quả được lưu vào biến ketQua.
Cuối cùng, hàm được định nghĩa với phần thân hàm được xác định. Chúng ta cũng có thể khai báo và định nghĩa hàm cùng một lúc, nhưng phải thực hiện trước khi hàm được gọi.
Gọi hàm trong C++
Để gọi một hàm nào đó, chúng ta sử dụng tên của hàm. Nếu hàm không có đối số, chúng ta có thể gọi trực tiếp theo 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 theo giá trị trong C++
Trong cách gọi hàm theo giá trị trong C++, chúng ta truyề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. Điều này đảm bảo rằng các giá trị ban đầu không thay đổi, chỉ có các tham số bên trong hàm mới thay đổi.
Ví dụ minh họa:
void thucHien(int x);
int main()
{
int x = 10;
thucHien(x);
printf('%d', x);
}
void thucHien(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ị, nên bản sao của x được truyền, thay đổi chỉ ảnh hưởng trong phạm vi hàm và giá trị sao chép đó sẽ biến mất khi hàm kết thúc (ra khỏi phạm vi). Do đó, biến x trong hàm main () vẫn giữ nguyên giá trị 10.
Tuy nhiên, chúng ta vẫn có khả năng điều chỉnh chương trình để cập nhật giá trị ban đầu của x bằng cách sử dụng hàm calc() để trả về giá trị và lưu trữ nó trong x.
int tinhToan(int x);
int main()
{
int x = 10;
x = tinhToan(x);
printf('%d', x);
}
int tinhToan(int x)
{
x = x + 10 ;
trả về x;
}
Kết quả đầu ra là 20.
Gọi hàm theo tham chiếu
Trong tình huống 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ể là tham chiếu hoặc con trỏ, và trong cả hai trường hợp, chúng sẽ thay đổi giá trị của biến gốc.
Ví dụ minh họa như sau:
void tinhToan(int *p);
int main()
{
int x = 10;
tinhToan(&x); // gửi địa chỉ của biến x làm đối số
printf('%d', x);
}
void tinhToan(int *p)
{
*p = *p + 10;
}
Kết quả đầu ra là 20.
Trong bài viết này, Mytour đã chia sẻ kiến thức về hàm trong C++, hướng dẫn cách sử dụng chúng. Trong các bài viết sắp tới, Mytour sẽ tiếp tục giới thiệu về số trong C++.