บางครั้งเราสามารถพบคำหลัก 'const' ที่ประกาศฟังก์ชันครั้งสุดท้าย แล้วมันหมายความว่ายังไง?
การใช้ฟังก์ชันเดียวนี้สามารถทำให้เป็นค่าคงที่ได้ แนวคิดของฟังก์ชันคงที่คือ ฟังก์ชันนี้ไม่สามารถแก้ไขจากอ็อบเจ็กต์ที่เรียกฟังก์ชันนั้นได้ ขอแนะนำให้ใช้ฟังก์ชันคงที่ในโปรแกรมของเรา
เรามาดูตัวอย่างของฟังก์ชันคงที่กัน
ตัวอย่าง
#include<iostream> using namespace std; class MyClass { int value; public: MyClass(int val = 0) { value = val; } int getVal() const { //value = 10; [This line will generate compile time error as the function is constant] return value; } };
ผลลัพธ์
The value is: 80
ตอนนี้เราจะเห็นจุดสำคัญอื่นที่เกี่ยวข้องกับฟังก์ชันคงที่ ฟังก์ชันคงที่สามารถเรียกได้จากวัตถุประเภทใดก็ได้ ดังที่คุณเห็นจากตัวอย่างด้านบน แต่ฟังก์ชันที่ไม่คงที่บางอย่างไม่สามารถเรียกจากออบเจกต์คงที่ได้
ตัวอย่าง
#include<iostream> using namespace std; class MyClass { int value; public: MyClass(int val = 0) { value = val; } int getVal(){ return value; } }; main() { const MyClass ob(80); cout<< "The value is: " << ob.getVal(); }
ผลลัพธ์
[Error] passing 'const MyClass' as 'this' argument of 'int MyClass::getVal()' discards qualifiers [-fpermissive]