ตัวอย่างฟังก์ชัน C++ Const

Tawxyang Fangkchan C Const



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

ตัวอย่างที่ 1: โปรแกรมของฟังก์ชันสมาชิก Const ใน C ++

เรามีโปรแกรมง่ายๆ ของฟังก์ชันสมาชิก const:

#รวม
โดยใช้ เนมสเปซ มาตรฐาน ;
ระดับ ห้องเรียนของฉัน {
ภายใน หนึ่ง ;
สาธารณะ : :
ห้องเรียนของฉัน ( ภายใน n = 0 ) {
หนึ่ง = n ;
}
ภายใน รับค่า ( ) ค่าคงที่ {
กลับ หนึ่ง ;
}
} ;
ภายใน หลัก ( ) {
ค่าคงที่ มายคลาสค ( 30 ) ;
มายคลาส c1 ( 5 ) ;
ศาล << 'หมายเลขโดยใช้วัตถุ c : ' << ค. รับค่า ( ) ;
ศาล << ' \n หมายเลขโดยใช้วัตถุ c1 : ' << ค1. รับค่า ( ) ;
กลับ 0 ;
}

เริ่มแรก เรากำหนดไฟล์ส่วนหัวซึ่งเปิดใช้งานสตรีมอินพุต/เอาท์พุตของโปรแกรม จากนั้น เราตั้งค่าคลาส “MyClass” โดยที่เราประกาศตัวแปร “num” และฟังก์ชันสมาชิกของฟังก์ชัน MyClass() และฟังก์ชัน getVal() ภายในฟังก์ชัน MyClass() เราตั้งค่าพารามิเตอร์ “n” ด้วยค่า “0” จากนั้นอาร์กิวเมนต์ 'n' จะถูกกำหนดให้กับตัวแปร 'num' ต่อไป เราจะเรียกใช้ฟังก์ชัน getVal() ด้วยคีย์เวิร์ด “const” ซึ่งบ่งชี้ว่าสถานะปัจจุบันของออบเจ็กต์ไม่สามารถแก้ไขได้ในการเรียกใช้ฟังก์ชัน ฟังก์ชัน getVal() ส่งกลับตัวแปรสมาชิก “num”







ในที่สุด เราก็เข้าถึงฟังก์ชัน main() ที่นี่ เรากำหนดวัตถุ “c” และ “c1” ของฟังก์ชัน MyClass() และยังส่งค่าไปยังวัตถุเหล่านี้ด้วย วัตถุ “c” ถูกตั้งค่าด้วยคำสำคัญ “const” ซึ่งบ่งชี้ว่าค่าที่กำหนดให้กับวัตถุนี้ไม่สามารถแก้ไขได้



ผลลัพธ์ของฟังก์ชันสมาชิก const ที่ถูกเรียกโดยวัตถุจะแสดงดังต่อไปนี้ ด้วยวิธีนี้ เราสามารถใช้คีย์เวิร์ด “const” กับฟังก์ชันสมาชิกและอ็อบเจ็กต์ได้:







ตัวอย่างที่ 2: โปรแกรมของฟังก์ชันสมาชิก Const นอกคลาสในภาษา C++

ตอนนี้เรามีการใช้งานอื่นโดยกำหนดฟังก์ชันสมาชิก const ไว้ภายนอกคำจำกัดความของคลาส และตั้งค่าและดึงค่าตัวแปรสมาชิกส่วนตัวโดยใช้ฟังก์ชันสมาชิก const

#รวม
โดยใช้ เนมสเปซ มาตรฐาน ;

ระดับ ใหม่คลาส {
ภายใน ฉัน ;

สาธารณะ : :
เป็นโมฆะ set_record ( ภายใน ) ;

ภายใน get_record ( ) ค่าคงที่ ;
} ;

เป็นโมฆะ ใหม่คลาส :: set_record ( ภายใน x ) { ฉัน = x ; }
ภายใน ใหม่คลาส :: get_record ( ) ค่าคงที่ { กลับ ฉัน ; }

ภายใน หลัก ( )
{
นิวคลาสค ;
ค. set_record ( 10 ) ;
ศาล << ค. get_record ( ) ;

กลับ 0 ;
}

ที่นี่ ขั้นแรกเราสร้างคลาส “NewClass” โดยที่เราเริ่มต้นตัวแปร “i” ซึ่งจะถูกเก็บไว้เป็นส่วนตัว หลังจากนั้น เรามีคีย์เวิร์ดสาธารณะซึ่งมีการกำหนดฟังก์ชันสมาชิก set_record() และ get_record() ฟังก์ชันสมาชิก set_record() ใช้เพื่อตั้งค่าของตัวแปร “i” และใช้ฟังก์ชัน get_record() ที่นี่เพื่อส่งคืนค่าของตัวแปร “i” โปรดทราบว่าเราใช้คีย์เวิร์ด “const” กับฟังก์ชันสมาชิก get_record() ซึ่งแสดงว่าเป็นฟังก์ชันสมาชิก const และสถานะของวัตถุไม่สามารถแก้ไขได้ หลังจากนั้น เรามีคำจำกัดความของฟังก์ชัน set_record() เพื่อตั้งค่าตัวแปร “i”



ในทำนองเดียวกัน เรามีคำจำกัดความฟังก์ชัน get_record() เพื่อดึงค่าตัวแปร “i” จากนั้นเราตั้งค่าฟังก์ชัน main() โดยที่เราได้ประกาศวัตถุ 'c' ของคลาส 'NewClass' จากนั้น 'set_record' ซึ่งเป็นฟังก์ชันที่ไม่ใช่สมาชิก const จะถูกเรียกเพื่อกำหนดค่าให้กับตัวแปร 'z' ต่อไปเราเรียกใช้ฟังก์ชันสมาชิก const get_record() เพื่อพิมพ์ค่า 'i'

ค่าของตัวแปรสมาชิกส่วนตัวถูกเรียกโดยฟังก์ชันสมาชิก const และแสดงอยู่ในพร้อมท์ต่อไปนี้:

ตัวอย่างที่ 3: โปรแกรมของฟังก์ชัน Const Member ที่กำหนดนอกคลาสเป็นฟังก์ชันอิสระ

อย่างไรก็ตาม เราใช้อีกกรณีหนึ่งของฟังก์ชันสมาชิก const โดยที่ฟังก์ชันสมาชิกที่มีคีย์เวิร์ด 'const' ถูกเรียกนอกคลาสเป็นฟังก์ชันแบบสแตนด์อโลน

#รวม
โดยใช้ เนมสเปซ มาตรฐาน ;
ระดับ สมการ {
ภายใน n1,n2 ;
สาธารณะ : :
เป็นโมฆะ ชุด_สมการ ( ภายใน เอ็กซ์, ภายใน และ )
{
n1 = x ;
n2 = และ ;
}
เป็นโมฆะ แสดง_สมการ ( )
{
ศาล << 'สมการคือ:' << n1 << '+' << n2 << 'ข' << สิ้นสุด ;
}
เพื่อน เป็นโมฆะ มันสนุก ( ค่าคงที่ สมการ ) ;
} ;
เป็นโมฆะ มันสนุก ( ค่าคงที่ สมการวัตถุ )
{
ศาล << 'ฟังก์ชันการใช้สมการคือ: ' << วัตถุประสงค์ n1 << '+' << วัตถุประสงค์ n2 << 'ข' << สิ้นสุด ;
}
ภายใน หลัก ( )
{
สมการวัตถุ ;
วัตถุประสงค์ ชุด_สมการ ( 5 , 8 ) ;
วัตถุประสงค์ แสดง_สมการ ( ) ;
มันสนุก ( วัตถุประสงค์ ) ;
}

ที่นี่ เราสร้างคลาส “Equation()” จากนั้นจึงประกาศตัวแปร “n1” และ “n2” ที่นี่ เรายังเพิ่มฟังก์ชันสมาชิก set_Equation() เพื่อตั้งค่าของตัวแปร “n1” และ “n2” ฟังก์ชัน show_Equation() แสดงสมการที่สร้างขึ้นโดยใช้ตัวแปรเหล่านี้

หลังจากนี้ เรามีการประกาศฟังก์ชัน funIs() ซึ่งกำหนดโดยใช้คีย์เวิร์ด 'friend' คีย์เวิร์ด 'เพื่อน' นี้ช่วยให้เราสามารถเข้าถึงสมาชิกส่วนตัวของคลาส 'สมการ' ได้ ต่อไป เราจะเรียกฟังก์ชันเพื่อน “funIs()” นอกคลาส และป้อนพารามิเตอร์ “obj” ของคลาส “Equation” เป็น const ในที่สุดเราก็มีฟังก์ชัน main() ที่เราประกาศอ็อบเจ็กต์ของคลาส 'Equation' จากนั้น เราตั้งค่าของตัวแปร “n1” และ “n2” โดยใช้ฟังก์ชัน set_Equation() ตัวแปร “n1” และ “n2” ใช้เพื่อแสดงค่าโดยใช้ฟังก์ชัน show_Equation() สุดท้ายนี้ เราเรียกฟังก์ชันเพื่อน 'funIs' ของคลาส 'Equation' เพื่อแสดงสมการ

สมการและสมการโดยใช้ฟังก์ชัน const friend จะแสดงบนพร้อมท์:

ตัวอย่างที่ 4: โปรแกรมของฟังก์ชัน Const Member เพื่ออัพเดตค่าในภาษา C++ (กรณีที่แย่ที่สุด)

โปรแกรมสาธิตสถานการณ์ที่เลวร้ายที่สุดของฟังก์ชันสมาชิก const โดยที่เราพยายามแก้ไขค่าของตัวแปรที่เรียกว่า 'ภายในฟังก์ชันสมาชิก const'

#รวม
โดยใช้ เนมสเปซ มาตรฐาน ;

ระดับ ข้อมูล {
ภายใน ใน ;

สาธารณะ : :
เป็นโมฆะ ตั้งค่า ( ภายใน ฉัน ) { ใน = ฉัน ; }
ภายใน รับค่า ( ) ค่าคงที่
{

++ ใน ;
กลับ ใน ;
}

} ;

ภายใน หลัก ( )
{
ข้อมูลง ;
ง. ตั้งค่า ( ยี่สิบ ) ;
ศาล << สิ้นสุด << ง. รับค่า ( ) ;

กลับ 0 ;
}

ที่นี่ ขั้นแรกเราสร้างคลาส 'Data' และประกาศตัวแปร 'v' ภายในคลาส หลังจากนั้น เราตั้งค่าคีย์เวิร์ด “public” จากนั้นประกาศฟังก์ชันสมาชิกคลาสของ “setValue()” ซึ่งแสดงถึงคอนสตรัคเตอร์ของคลาส และ getValue() ซึ่งระบุฟังก์ชันสมาชิก getter ของคลาส ฟังก์ชัน setValue() รับตัวแปร “i” เป็นพารามิเตอร์ ตัวแปร “i” นี้ถูกกำหนดให้กับตัวแปรสมาชิก “v”

หลังจากนี้ เรามีคำจำกัดความฟังก์ชัน getValue() ที่เราดึงค่าของตัวแปร “v” เนื่องจากฟังก์ชัน getValue() ได้รับการประกาศด้วยคีย์เวิร์ด “const” ซึ่งแสดงว่าค่าของตัวแปร “v” ไม่สามารถอัปเดตได้ไม่ว่าในกรณีใด อย่างไรก็ตาม เราตั้งใจที่จะพยายามเพิ่มตัวแปร “v” เพื่อเปลี่ยนค่าของมัน เมื่อโปรแกรมมาถึงขั้นตอนนี้ จะเกิดข้อผิดพลาด สุดท้ายนี้ เรามีการเรียกใช้ฟังก์ชัน main() โดยที่เรากำหนดวัตถุ “d” ของคลาส “Data” และตั้งค่าเป็น “20” สำหรับวัตถุ “d” นี้ หลังจากนั้นเราเรียกใช้ฟังก์ชัน getValue() เพื่อรับค่า “d” ของอ็อบเจ็กต์

พรอมต์สร้างผลลัพธ์ของการใช้งานก่อนหน้านี้ซึ่งทำให้เกิดข้อผิดพลาดใน “++v” เนื่องจากเราไม่ได้รับอนุญาตให้แก้ไขค่าของออบเจ็กต์ฟังก์ชันสมาชิก const:

บทสรุป

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