Các loại hàm (function) có thể được định nghĩa trong C++

Đây là bài 23/43 bài của series môn học Nhập môn lập trình

Lập trình viên có thể tự định nghĩa hàm trong C++. Dựa vào tham số và kiểu trả về, có thể có các loại hàm sau:

    • Hàm không có tham sốkhông có kiểu trả về
    • Hàm không có tham số nhưng có kiểu trả về
    • Hàm có tham số nhưng không có kiểu trả về
    • Hàm có tham sốcó kiểu trả về

Bên dưới là các ví dụ của chương trình kiểm tra số nguyên tố. Các chương trình này sẽ được viết hàm theo các loại hàm kể trên.

1. Hàm không có tham số và không có kiểu trả về

# include <iostream>
using namespace std;

// Return type of function is void because value is not returned.
void prime()
{
	int num, i, flag = 0;

	cout << "Enter a positive integer enter to check: ";
	cin >> num;

	for(i = 2; i <= num/2; ++i)
	{
		if(num % i == 0){
			flag = 1; 
			break;
		}
	}

	if (flag == 1){
		cout << num << " is not a prime number.";
	}
	else{
		cout << num << " is a prime number.";
	}
}

int main()
{
	// No argument is passed to prime()
	prime();
	system("pause");
}

Hàm void prime(); không có tham số và không có kiểu trả về.

2. Hàm không có tham số nhưng có kiểu trả về

#include <iostream>
using namespace std;

// Return type of function is int
int prime()
{
	int n;

	printf("Enter a positive integer to check: ");
	cin >> n;

	return n;
}

int main()
{
	int num, i, flag = 0;

	// No argument is passed to prime()
	num = prime();
	for (i = 2; i <= num/2; ++i){
		if (num%i == 0){
			flag = 1;
			break;
		}
	}

	if (flag == 1){
		cout<<num<<" is not a prime number.";
	}else{
		cout<<num<<" is a prime number.";
	}
	system("pause");
}

Hàm int prime(); không có tham số nhưng có kiểu trả về là int.

3. Hàm có tham số nhưng không có kiểu trả về

#include <iostream>
using namespace std;

// There is no return value to calling function. Hence, return type of function is void.
void prime(int n)
{
	int i, flag = 0;
	for (i = 2; i <= n/2; ++i){
		if (n%i == 0){
			flag = 1;
			break;
		}
	}

	if (flag == 1){
		cout << n << " is not a prime number.";
	}else {
		cout << n << " is a prime number.";
	}
}

int main()
{
	int num;
	cout << "Enter a positive integer to check: ";
	cin >> num;
    
	// Argument num is passed to the function prime()
	prime(num);
	system("pause");
}

Hàm void prime(int n); có tham số int n nhưng không có kiểu trả về.

4. Hàm có tham số và có kiểu trả về

#include <iostream>
using namespace std;

/* This function returns integer value.  */
int prime(int n)
{
	int i;
	for(i = 2; i <= n/2; ++i){
		if(n % i == 0)
			return 1;
	}

	return 0;
}
int main()
{
	int num, flag = 0;
	cout << "Enter positive integer to check: ";
	cin >> num;

	// Argument num is passed to check() function
	flag = prime(num);

	if(flag == 1){
		cout << num << " is not a prime number.";
	}else{
		cout<< num << " is a prime number.";
	}
    system("pause");
}

Hàm int prime(int n); có tham số int n và có kiểu trả về là int.

5. Nên chọn loại hàm nào?

Kết quả 1
Enter positive integer to check: 5
5 is a prime number.
Kết quả 2
Enter positive integer to check: 4
4 is not a prime number.

Các loại hàm đều cho kết quả như nhau. Bạn chọn loại hàm nào cũng được. Nhưng mình khuyên bạn nên sử dụng hàm sao cho linh hoạt, code ngắn gọn dễ hiểutiện lợi khi sửa đổi code.

Mời bạn đánh giá bài viết
Bài trước và bài sau trong môn học<< Khái niệm hàm (function) trong lập trình và minh họa với C++Truyền tham trị và truyền tham chiếu cho hàm trong C++ >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.