วิธีใช้ตัวชี้ฟังก์ชันใน C++

Withi Chi Taw Chi Fangkchan Ni C



ใน C ++ ตัวชี้ฟังก์ชัน เสนอเครื่องมือที่ทรงพลังสำหรับจัดการฟังก์ชันเป็นข้อมูล ก ตัวชี้ฟังก์ชัน เป็นตัวแปรที่เก็บที่อยู่หน่วยความจำของฟังก์ชัน ทำงานคล้ายกับตัวชี้มาตรฐาน ยกเว้นว่าจะบันทึกที่อยู่ของฟังก์ชันแทนที่จะเป็นที่อยู่ของวัตถุข้อมูล สิ่งสำคัญคือต้องระลึกไว้เสมอว่า ตัวชี้ฟังก์ชัน เป็นเพียงตัวแปรอีกประเภทหนึ่งในภาษา C++ ดังนั้น จึงต้องประกาศและกำหนดค่าเริ่มต้นเหมือนกับตัวแปรอื่นๆ

การกำหนดตัวชี้ฟังก์ชัน

ไวยากรณ์ที่จะประกาศ a ตัวชี้ฟังก์ชัน มีดังนี้







return_type ( * func_ptr_name ) ( รายการพารามิเตอร์ ) ;



ที่นี่, func_ptr_name เป็นชื่อของ ตัวชี้ฟังก์ชัน , return_type เป็นประเภทการคืนค่าของฟังก์ชัน และ รายการพารามิเตอร์ คือรายการพารามิเตอร์ที่ฟังก์ชันใช้



นี่คือตัวอย่างโค้ดสำหรับใช้ตัวชี้ฟังก์ชันใน C++





#include
#รวม
ใช้เนมสเปซ std;

โมฆะคิวบ์ ( int x )
{
ศาล << 'ลูกบาศก์ของตัวเลขคือ' << x * x * x << ท้าย;
}

int หลัก ( )
{
เป็นโมฆะ ( * สนุกPtr ) ( นานาชาติ ) ;
funPtr = & ลูกบาศก์;
สนุกPtr ( 5 ) ;
กลับ 0 ;
}

ในรหัสด้านบน the ตัวชี้ฟังก์ชัน ถือเป็นโมฆะ (*funPtr)(int) และเริ่มต้นโดยเก็บแอดเดรสของฟังก์ชัน cube() ไว้ใน สนุกPtr , หมายความว่า สนุกPtr ชี้ไปที่ฟังก์ชัน ลูกบาศก์ () . ดังนั้น เราอาจเรียกฟังก์ชันคิวบ์โดยใช้ฟังก์ชัน funPtr ( ตัวชี้ฟังก์ชัน ) เหมือนในโค้ด funPtr (5)



เอาต์พุต

ตัวชี้ฟังก์ชัน ตรงกันข้ามกับพอยน์เตอร์อื่นๆ ชี้ไปที่โค้ดมากกว่าข้อมูล ก ตัวชี้ฟังก์ชัน มักจะเก็บจุดเริ่มต้นของรหัสปฏิบัติการ ซึ่งแตกต่างจากพอยน์เตอร์มาตรฐานที่เราไม่ได้ใช้ ตัวชี้ฟังก์ชัน เพื่อจัดสรรหรือเพิ่มหน่วยความจำ ดังที่เราเห็นในโปรแกรมข้างต้น คุณยังสามารถใช้ชื่อฟังก์ชันเพื่อกำหนดตำแหน่งของฟังก์ชันได้อีกด้วย กฎเดียวกันกับที่ใช้กับพอยน์เตอร์ปกติยังใช้กับอาร์เรย์ของ ตัวชี้ฟังก์ชัน . สามารถใช้พอยน์เตอร์ฟังก์ชันแทนเคสสวิตช์ได้ ก ตัวชี้ฟังก์ชัน สามารถระบุเป็นอาร์กิวเมนต์และส่งคืนจากฟังก์ชันได้ เช่นเดียวกับตัวชี้ข้อมูล

ข้อดีของตัวชี้ฟังก์ชัน

ประโยชน์หลักของ ตัวชี้ฟังก์ชัน อยู่ด้านล่าง

1: การใช้รหัสซ้ำ

หนึ่งในข้อได้เปรียบที่สำคัญของการใช้ ตัวชี้ฟังก์ชัน คือพวกเขาอนุญาตให้ใช้ซ้ำในรหัส แทนที่จะต้องเขียนฟังก์ชันเฉพาะสำหรับทุกสถานการณ์ คุณสามารถออกแบบฟังก์ชันที่กว้างพอที่จะจัดการกับข้อมูลอินพุตประเภทต่างๆ ที่หลากหลายได้โดยการกำหนด ตัวชี้ฟังก์ชัน พิมพ์และใช้งานอย่างสม่ำเสมอตลอดทั้งรหัสของคุณ สิ่งที่คุณต้องทำคือให้สิทธิ์ ตัวชี้ฟังก์ชัน ที่รันไทม์หรือผ่านไฟล์คอนฟิกูเรชัน และฟังก์ชันจะปรับตามความต้องการของงานปัจจุบัน สิ่งนี้ไม่เพียงเพิ่มความเร็วให้กับกระบวนการพัฒนาเท่านั้น แต่ยังปรับปรุงความเป็นโมดูลของโค้ดและความสามารถในการบำรุงรักษาในระยะยาวอีกด้วย

2: พฤติกรรมรันไทม์แบบไดนามิก

ความสามารถในการนำลักษณะการทำงานรันไทม์แบบไดนามิกไปใช้เป็นประโยชน์อีกอย่างหนึ่งของการใช้ ตัวชี้ฟังก์ชัน . ตัวอย่างเช่น คุณอาจมีฟังก์ชันที่ดำเนินการคำนวณเฉพาะ แต่อัลกอริทึมที่แน่นอนที่ใช้ในการคำนวณนั้นจะขึ้นอยู่กับอินพุตของผู้ใช้หรือเงื่อนไขของระบบ โดยจัดเก็บก ตัวชี้ฟังก์ชัน ที่สอดคล้องกับอัลกอริทึมที่เป็นไปได้แต่ละรายการ คุณสามารถเลือกอัลกอริทึมที่เหมาะสมในขณะรันไทม์โดยใช้คำสั่ง if-else หรือตรรกะเงื่อนไขอื่นๆ การทำเช่นนี้ทำให้คุณสามารถพัฒนาโค้ดที่มีความยืดหยุ่นสูงซึ่งสามารถตอบสนองต่อเงื่อนไขที่เปลี่ยนแปลงโดยไม่จำเป็นต้องสร้างโปรแกรมใหม่ทั้งหมด

3: ความยืดหยุ่น

ใน C ++ ตัวชี้ฟังก์ชัน นำเสนอเครื่องมือที่ทรงพลังสำหรับการสร้างโค้ดทั่วไปที่ยืดหยุ่น ตัวชี้ฟังก์ชัน เป็นตัวแปรที่เก็บแอดเดรสของตำแหน่งหน่วยความจำของฟังก์ชันเป็นหลัก ซึ่งช่วยให้สามารถจัดเก็บฟังก์ชันในโครงสร้างข้อมูล เช่น อาร์เรย์หรือรายการ จัดหาเป็นอาร์กิวเมนต์ให้กับฟังก์ชันอื่นๆ และแม้แต่ใช้ในการเลือกฟังก์ชันที่เหมาะสมแบบไดนามิกเพื่อดำเนินการตามสถานการณ์รันไทม์หรือการป้อนข้อมูลของผู้ใช้

บทสรุป

ตัวชี้ฟังก์ชัน ใน C ++ มีประสิทธิภาพที่สนับสนุนพฤติกรรมรันไทม์แบบไดนามิกและการใช้รหัสซ้ำ คุณสามารถเขียนโค้ดที่ยืดหยุ่นและปรับเปลี่ยนได้อย่างมาก ซึ่งสามารถปรับให้เข้ากับความต้องการที่เปลี่ยนแปลงตลอดเวลาโดยการจัดเก็บที่อยู่ของฟังก์ชันในตัวแปร ตัวชี้ฟังก์ชัน จำเป็นสำหรับผู้เขียนโค้ด C++ มืออาชีพทุกคน แม้ว่าพวกเขาอาจต้องทำงานบางอย่างเพื่อเรียนรู้