วิธีคืนค่าตัวชี้จากฟังก์ชันใน C ++

Withi Khun Khataw Chi Cak Fangkchan Ni C



ในฟังก์ชัน 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++ เป็นไปได้ที่จะส่งคืนพอยน์เตอร์จากฟังก์ชัน ซึ่งสามารถทำได้โดยการประกาศฟังก์ชันชนิดส่งคืนเป็นตัวชี้ไปยังฟังก์ชันนั้น ทุกฟังก์ชันที่สร้างขึ้นจะมีที่อยู่ที่กำหนดไว้ในหน่วยความจำ