ในฟังก์ชัน C++ คือบล็อกของโค้ดที่ถูกนำมาใช้เพื่อทำหน้าที่บางอย่างและพอยน์เตอร์ใช้เพื่อชี้ตัวแปรในฟังก์ชัน ตัวชี้ถูกกำหนดให้กับที่อยู่
วิธีคืนค่าตัวชี้จากฟังก์ชันใน C ++
ในภาษา C++ เป็นไปได้ที่จะส่งคืนพอยน์เตอร์จากฟังก์ชัน ซึ่งสามารถทำได้โดยการประกาศฟังก์ชันชนิดส่งคืนเป็นตัวชี้ไปยังฟังก์ชันนั้น ทุกฟังก์ชันที่สร้างขึ้นจะมีที่อยู่ที่กำหนดไว้ในหน่วยความจำ เครื่องหมายดอกจัน * ถูกแทรกไว้ทางด้านซ้ายของชื่อฟังก์ชัน
ไวยากรณ์
นี่คือไวยากรณ์สำหรับการส่งคืนตัวชี้จากฟังก์ชันใน C ++:
กลับ พิมพ์ ( * function_pointer_name ) ( argument_type_1, argument_type_2, ......, argument_type_n ) = function_name ;
ตัวอย่างที่ 1
ตัวอย่างนี้แสดงให้เห็นถึงการกลับมาของตัวชี้จากฟังก์ชันใน C ++:
#รวม
โดยใช้ เนมสเปซ มาตรฐาน ;
เป็นโมฆะ ผลลัพธ์ ( ภายใน & ก )
{
ก + = 10 ;
}
ภายใน หลัก ( )
{
ภายใน x = 40 ;
//ตัวชี้ส่งคืนจากฟังก์ชัน
เป็นโมฆะ ( * ปตท ) ( ภายใน & ) = & ผลลัพธ์ ;
ปตท ( x ) ;
ศาล << x << สิ้นสุด ;
กลับ 0 ;
}
ในซอร์สโค้ดนี้ ฟังก์ชันผลลัพธ์เป็นโมฆะจะถูกประกาศและใช้การอ้างอิงถึง int a ซึ่งเพิ่มขึ้น 10 ครั้ง ตัวแปร x เก็บค่า 40 และ *ptr ชี้ไปที่ฟังก์ชัน int& ให้ ptr ชี้ไปที่ผลลัพธ์ ดังนั้น x จะเพิ่มขึ้น 10
ค่าของอินพุต x เพิ่มขึ้น 10 และส่งคืน 50
ตัวอย่างที่ 2
นี่คือตัวอย่างที่คำนวณเงินเดือนรายสัปดาห์ของคนงาน:
#รวมโดยใช้ เนมสเปซ มาตรฐาน ;
สองเท่า & รับ WeeklyHours ( )
{
สองเท่า ชม. = 32.65 ;
สองเท่า & ชั่วโมง = ชม. ;
กลับ ชั่วโมง ;
}
สองเท่า * รับเงินเดือน ( )
{
สองเท่า เงินเดือน = 42.48 ;
สองเท่า * เงินเดือนรายชั่วโมง = & เงินเดือน ;
กลับ เงินเดือนรายชั่วโมง ;
}
ภายใน หลัก ( )
{
สองเท่า ชั่วโมง = รับ WeeklyHours ( ) ;
สองเท่า เงินเดือน = * รับเงินเดือน ( ) ;
ศาล << 'ชั่วโมงทำงานรายสัปดาห์ของพนักงาน: ' << ชั่วโมง << สิ้นสุด ;
ศาล << 'เงินเดือนรายชั่วโมงของคนงาน: ' << เงินเดือน << สิ้นสุด ;
สองเท่า เงินเดือนรายสัปดาห์ = ชั่วโมง * เงินเดือน ;
ศาล << 'เงินเดือนรายสัปดาห์ของคนงาน: ' << เงินเดือนรายสัปดาห์ << สิ้นสุด ;
กลับ 0 ;
}
ในซอร์สโค้ดนี้ มีการป้อนชั่วโมงและเงินเดือนรายชั่วโมง ตัวชี้การส่งคืนจากวิธีการของฟังก์ชันใช้เพื่อเข้าถึงพารามิเตอร์เหล่านี้และคำนวณเงินเดือนรายสัปดาห์ของพนักงาน
เมื่อทราบชั่วโมงรายสัปดาห์และเงินเดือนรายชั่วโมง เงินเดือนรายสัปดาห์สามารถคำนวณได้โดยการคูณทั้งสองเงื่อนไข
บทสรุป
ในภาษา C++ เป็นไปได้ที่จะส่งคืนพอยน์เตอร์จากฟังก์ชัน ซึ่งสามารถทำได้โดยการประกาศฟังก์ชันชนิดส่งคืนเป็นตัวชี้ไปยังฟังก์ชันนั้น ทุกฟังก์ชันที่สร้างขึ้นจะมีที่อยู่ที่กำหนดไว้ในหน่วยความจำ