Hàm đơn giản
Ví dụ: Viết hàm đơn giản tính lũy thừa của một số nguyên.
int Power (int base, int exponent)
{
int result = 1;
for (int i = 0; i < exponent; i++)
result *= base;
return result;
}
Giải thích:
- Dòng 1 định nghĩa giao diện hàm. Nó bắt đầu với kiểu trả về của hàm (là int trong trường hợp này). Kế tiếp là tên hàm, theo sau là danh sách các tham số. Power có hai tham số (base và exponent) thuộc kiểu int và int tương ứng. Chú ý là cú pháp cho các tham số là tương tự như cú pháp cho định nghĩa biến: định danh kiểu được theo sau bởi tên tham số. Tuy nhiên, không thể theo sau định danh kiểu với nhiều tham số phân cách bởi dấu phẩy:
int Power (int base, exponent) //Sai
- Dòng 2 đánh dấu điểm bắt đầu của thân hàm.
- Dòng 3 định nghĩa một biến cục bộ.
- Dòng 5-6 vòng lặp for này tăng cơ số base lên lũy thừa của exponent và lưu trữ kết quả vào trong result.
- Dòng 7 trả result về như là kết quả của hàm.
- Dòng 8 đánh dấu điểm kết thúc của thân hàm.
Ví dụ gọi hàm.
include <iostream>
using namespace std;
main(void)
{
cout << "2 ^ 8 = " << Power(2,8) << endl;
}
Khi chạy chương trình này xuất ra kết quả sau:
2 ^ 8 = 256
Nói chung, một hàm phải được khai báo trước khi sử đụng nó. Khai báo hàm (function declaration) đơn giản gồm có mẫu ban đầu của hàm gọi là nguyên mẫu hàm (function prototype) chỉ định tên hàm, các kiếu tham số, và kiểu trả về. Hàng 2 trong chương trình dưới đây trình bày hàm Power có thể được khai báo như thế nào cho chương trình trên. Nhưng một hàm cũng có thể được khai báo mà không cần tên các tham số của nó,
int Power(int, int);
Tuy nhiên chúng ta không nên làm điều đó trừ khi vai trò của các tham số hàm là rõ ràng.
include <iostream>
using namespace std;
int Power(int base, int exponent); // Khai báo hàm
main(void)
{
cout << "2 ^ 8 = " << Power(2,8) << endl;
}
int Power(int base, int exponent)
{
int result = 1;
for (int i = 0; i < exponent; i++)
result *= base;
return result;
}
Bởi vì một định nghĩa hàm chứa đựng một nguyên mẫu (prototype) nên nó cũng được xem như là một khai báo. Vì thế nếu định nghĩa của một hàm xuất hiện trước khi sử dụng nó thì không cần khai báo thêm vào. Tuy nhiên việc sử dụng các nguyên mầu hàm là khuyến khích cho mọi trường họp. Tập hợp của nhiều hàm vào một tập tin header riêng biệt cho phép những lập trình viên khác truy xuất nhanh chóng tới các hàm mà không cần phải đọc toàn bộ các định nghĩa của chúng.