หน้าเว็บ

วันอังคารที่ 17 กันยายน พ.ศ. 2556

[CPP] Template คืออะไร แบบง่ายๆในภาษาซี

Template คืออะไร template ก็คือการเขียนรูปแบบฟังก์ชัน การทำงานของฟังก์ชัน แต่ไม่ได้ระบุตัวแปรว่าเ็ป็นชนิดใด

ในการสร้างฟังก์ชัน บางครั้งเราก็ต้องการให้ฟังก์ชันของเราใช้งานได้กับตัวแปรต่างชนิดกัน กล่าวคือใช้กับตัวแปรชนิด int ก็ได้ ใช้กับตัวแปรชนิด float ก็ได้ ใช้กับตัวแปรชนิด double ก็ได้


ในภาษา C++ เราจะสามารถสร้างฟังก์ template เพื่อแก้ปัญหาดังกล่าวได้ รูปแบบของฟังก์ชัน template จะเป็นแบบนี้ครับ
template<class ชนิดของตัวแปร>
ชนิดของตัวแปร output  ชื่อฟังก์ชัน (input ของฟังก์ชัน)
{
ชุดคำสั่งต่างๆ
}
ตัวอย่างเช่น สมมติว่าเราต้องการสร้างฟังก์ชันที่ให้ค่ามากที่ของตัวเลข 2 ตัว เราอาจสร้างดังนี้


ในบรรทัดที่ 3 ถึง 8 ก้คือการทำงานของโปรแกรม กล่าวคือ คล้ายๆกับฟังก์ชัน แต่ถ้าเป็นฟังก์ชันจะเขียนดังนี้


สิ่งที่ต่างก้คือ template ไม่จำเป็นต้องระบุ data type จะใช้เป็น int float double หรือ long ก้ได้
ซึ่งในการประกาศตัวแปรในบรรทัดที่ 14 ของรูปแรก เราเปลียนเป็นอะไรก้ได้
เช่น 



















หวังว่าทุกคนคงเข้าใจกันนะครับ