1/ Khai báo một Hàm
C++ cung cấp một số hàm được định nghĩa trước, chẳng hạn như hàm main()
, được sử dụng để thực thi mã. Nhưng các em cũng có thể tạo các hàm của riêng mình để thực hiện các công việc nhất định.
Cú pháp đơn giản
kieu_du_lieu tenHam() {
// đoạn mã cần thực thi
}
tenHam
: là tên của hàm, cách đặt tên giống như đặt tiên biếnkieu_du_lieu
: là kiểu dữ liệu trả về của hàm nhưvoid
,int
,string
... như đã học ở bài "Các kiểu dữ liệu trong C++". Riêng kiểuvoid
có nghĩa là hàm không có giá trị trả về.
Ví dụ:
void xinChao() {
cout << "Chao Viet Nam";
}
2/ Gọi một Hàm
Các hàm đã khai báo không được thực thi ngay lập tức. Chúng được "lưu để sử dụng sau", và sẽ được thực thi khi chúng được gọi.
Cú pháp
teHam();
Ví dụ
#include <iostream>
using namespace std;
void xinChao() {
cout << "Toi la Viet Nam\n";
}
int main() {
// goi ham xinChao lan thu nhat
xinChao(); // ket qua: Toi la Viet Nam
cout << "Hen gap lai\n";
// goi ham xinChao lan thu hai
xinChao(); // ket qua: Toi la Viet Nam
return 0;
}
3/ Khai báo và định nghĩa Hàm
- Các hàm mà các em khai báo được gọi là hàm
user-defined
, - Các hàm được định nghĩa trước, chẳng hạn như hàm
main()
được gọi là hàmpre-defined
Một hàm được chia làm hai phần: phần khai báo và phần định nghĩa
kieu_du_lieu tenHam() { // Phần khai báo (Declaration)
// Phần định nghĩa (Definition)
}
Phần khai báo
: làkieu_du_lieu tenHam()
Phần định nghĩa
: là đoạn mã cần thực thi
Các hàm user-defined
phải đặt trước các hàm pre-defined
, nếu không sẽ xảy ra lỗi
Ví dụ khi biên dịch đoạn mã bên dưới, sẽ xảy ra lỗi "error: ‘xinChao’ was not declared in this scope
"
#include <iostream>
using namespace std;
int main() {
xinChao();
return 0;
}
void xinChao() {
cout << "Toi la Viet Nam";
}
Tuy nhiên, các em có thể tách biệt phần khai báo và phần định nghĩa của hàm để tối ưu hóa mã.
Các em sẽ thường thấy trong các chương trình C++ có "phần khai báo" hàm nằm trên hàm main()
và "phần định nghĩa" hàm nằm bên dưới hàm main()
. Điều này sẽ làm cho mã được tổ chức tốt hơn và dễ đọc hơn.
Ví dụ:
#include <iostream>
using namespace std;
// Phan khai bao ham
void xinChao();
int main() {
xinChao();
return 0;
}
// Phan dinh nghia ham
void xinChao() {
cout << "Toi la Viet Nam";
}