Đôi lúc chúng ta cần xây dựng hàm mà kiểu dữ liệu của các tham số và kiểu dữ liệu của hàm trả về là không tường minh (có nghĩa là chúng có dạng tổng quát, có thể là số nguyên, số nguyên dài, xâu…). Khi đó, để giải quyết vấn đề này, chúng ta có thể sử dụng quá tải hàm như trong ví dụ trên, con trỏ hàm mà chúng ta sẽ thảo luận sau và thêm một cách thức nữa sau khi học về tính hướng đối tượng. Ngoài ra, chúng ta cũng còn thêm một cách thức để thực hiện điều này, đó là hàm mẫu – template function. Để khai báo kiểu dữ liệu không tường minh này, chúng ta có thể khai báo như sau:
Ví dụ sau đây minh họa việc sử dụng hàm mẫu template function.
Ví dụ | Kết quả |
#include using namespace std;
template
T add(T a, T b)
{
return a+b;
}
int main()
{
cout<(1, 2)<
cout<(“ab”, “cd”)<
} | 3 abcd |
Giải thích: khai báo hàm mẫu template function được dùng để tạo một kiểu dữ liệu không tường minh. Việc xây dựng hàm add với kiểu dữ liệu trả về là kiểu T và các tham số của nó cũng là kiểu T. Do đó, hàm add này có thể sử dụng dưới dạng tổng quát, dùng để cộng số, cộng xâu… Để quy định là cộng số, ta có thể quy định ngay sau tên hàm: tên_hàm
. Như vậy, trong ví dụ trên, hàm cout thứ nhất in ra giá trị tổng của hai số nguyên 1 và 2. Hàm cout thứ hai in ra giá trị ghép nối của hai xâu “ab” và “cd”.
No comments:
Post a Comment