Just another WordPress.com site

Function ใน C++

เราสามารถแบ่งฟังก์ชันใน C++ ได้เป็น 2 ประเภทได้แก่

1. ฟังก์ชันที่อยู่ใน standard library ของ C++ เราจะเรียกฟังก์ชันพวกนี้ว่า built-in function

2. ฟังก์ชันที่เราสร้างขึ้นมาเพื่อที่จะใช้งานเอง เราจะเรียกฟังก์ชันพวกนี้ว่า user defined function

สำหรับพวก built-in function นั้นเราสามารถเรียกใช้ได้โดยการ import library ที่มีฟังก์ชันนั้นๆเขามาในโปรแกรมของเรา ตัวอย่างเช่น ถ้าเราต้องการใช้ฟังก์ชันทางคณิตศาสตร์ เช่นพวก sin, cos, tan, exponential, log ซึ่งฟังก์ชันเหล่านี้อยู่ใน library ที่ชื่อว่า cmath ใน C++ เราสามารถเขียนคำสั่งได้ดังตัวอย่างนี้

เมื่อทำการรันจะได้ผลลัพธ์ดังนี้ครับ

สำหรับฟังก์ชันทางคณิตศาสตร์ทั้งหมดที่อยู่ใน C++ เราสามารถดูได้ที่ http://www.cplusplus.com/reference/clibrary/cmath/

ส่วนฟังก์ชันประเภท user defined function มีโครงสร้างการเขียนแบบนี้ครับ

ชนิดข้อมูลของข้อมูลที่ต้องการ return ชื่อฟังก์ชัน (ตัวแปร input)

{

ชุดคำสั่งต่างๆภายในฟังก์ชัน

}

เช่นสมมติว่าเราต้องการสร้างฟังก์ชันที่ เมื่อใส่ตัวเลขลงไปจะให้ผลลัพธ์เป็นกำลังสองของตัวเลขที่เราจะใส่ไป เราสามารถเขียนโค้ดได้ดังนี้


การทำงานของฟังก์ชันจะสิ้นสุดที่คำสั่ง return เสมอ คือ สมมติว่าฟังก์ชันเรามีคำสั่ง return หลายๆที่ ถ้าฟังก์ชันของเราพบคำสั่ง return ที่ไหนมันจะทำการการ return ค่าแล้วออกจากฟังก์ชันทันที เช่น

ขอให้สังเกตว่าเมื่อเราใส่เลข 12 ลงไป มันจะเข้าเงื่อนไขของ if แล้วก็จะเจอคำสั่ง return 10; พอเจอคำสั่ง return ปุ๊บ มันจะทำการ return ค่า พร้อมออกจากฟังก์ชันทันที

ตัวแปรที่ต่างๆที่อยู่ในฟังก์ชัน เป็น local varible นะครับ ไม่สามารถเรียกใช้ภายในฟังก์ชันได้ ถ้าเราใช้ตัวแปรในฟังก์ชันซ้ำกับตัวแปรภายนอกฟังก์ชัน ก็ไม่มีผลกระทบใดๆต่อตัวแปรภายนอกฟังก์ชันทั้งสิ้น เช่น

สังเกตนะครับว่า การเปลี่ยนแปลงของค่า x ภายในฟังก์ชัน square ไม่ส่งผลใดๆกับตัวแปร x ที่อยู่ภายนอกฟังก์ชันทั้งสิ้น

ทีนี้สมมติว่าเราต้องการให้การเปลี่ยนแปลงมีผลกับตัวแปร x ภายนอกด้วย ใน C++ ก็อนุญาตให้เราทำได้ด้วยครับ โดยการใส่เครื่องหมาย & หน้าตัวแปรที่เราต้องการให้มีผล เช่น ถ้าเราเปลี่ยนแปลงบรรทัดที่ 5 เป็นดังนี้

เราจะได้ผลลัพธ์ของการรันเป็น

จะสังเกตว่าค่า x ภายนอกฟังก์ชันมีการเปลี่ยนแปลงเป็น 64 ตาม x ที่อยู่ในฟังก์ชันด้วยครับ

ทีนี้ในบางครั้งเราอาจจะต้องการสร้างฟังก์ชันซึ่งมีลักษณะที่ว่า เมื่อฟังก์ชันจบการทำงานแล้ว ไม่ต้องให้มัน return ค่าใดๆกลับมา เราสามารถทำได้โดยการเขียนคำว่า void นำหน้าฟังก์ชันดังตัวอย่างต่อไปนี้ครับ

ต่อไปจะเป็นตัวอย่างสุดท้ายของ blog นี้นะครับ สมมติว่าเราต้องการสร้างฟังก์ชันเพื่อทำการสลับค่าตัวแปร 2 ตัว สมมติว่าเราเขียนโค้ดแบบนี้

เมื่อทำการรันเราจะเห็นว่า a และ b มันสลับค่าเฉพาะในฟังก์ชันเท่านั้นดังรูป

ถ้าเราต้องการให้มันสลับที่กันภายนอกด้วยเราจะเปลี่ยนแปลงบรรทัดที่ 5 ดังนี้

ซึ่งเราจะได้ผลลัพธ์ของรันรันเป็น

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: