Tìm kiếm

Template function ( hàm khuôn mẫu )

Hàm khuôn mẫu là một loại hàm đặc biệt trong C++, có thể hoạt động với kiểu dữ liệu bất kỳ. Điều này cho phép chúng ta viết 1 hàm mà có thể sử dụng chung cho các kiểu dữ liệu khác nhau. 
Ví dụ: Viết hàm in ra màn hình các phần tử của mảng các số nguyên và mảng các ký tự. Như vậy, nếu không có hàm khuôn mẫu thì chúng ta phải khai báo hai hàm. Mỗi hàm sẽ có tham số khác nhau:


Code:


    void InMangSoNguyen(int array[], int len) {
 for( int i = 0; i< len; i++) {
cout << array[i] << " ";
 }
}
//----------------------------------------------------------------------------------
void InMangKyTu(char array[], int len) {
 for( int i = 0; i< len; i++) {
cout << array[i] << " ";
 }
}





Chúng ta có thể thấy là mã lệnh của 2 hàm giống nhau hoàn toàn. Như vậy bằng cách sử dụng template, chúng ta chỉ viết một hàm InMang mà thôi.

Code:



template<class T>
void InMang(T array[], int len)
{
for (int i =0; i<len; i++) {
cout<<array[i]<<" ";
}
}
và hàm main sẽ gọi hàm template như bình thường, Ví dụ:



Code:


 int main()
{
int mangso[10] = {1,2,3,4,5,6,7,8,9,10};
char mangkytu[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};


InMang(mangso, 10);
cout<<endl;
InMang(mangkytu, 10);


return 0;
}



Ngoài ra, khuôn mẫu còn được dùng cho lớp gọi là template class. Đây là một khái niệm mạnh được IBM dùng để xây dựng nên bộ thư viện chuẩn giúp đơn giản hóa việc lập trình C++ gọi là STL (standard template library).


                                                                                                                                                      ....Sưu tầm...

Read Users' Comments (0)

0 Response to "Template function ( hàm khuôn mẫu )"

Đăng nhận xét

Support

Liên hệ DMTuan-Uneti
Mọi thông tin góp ý các bạn liên hệ với mình ! Mail:
  1. manhtuan.leo@gmail.com
  2. manhtuan.itvp@gmail.com

Y!M: manhtuan.it92