Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความหมายของ 'const' อยู่ในการประกาศฟังก์ชันของคลาส C ++ หรือไม่


บางครั้งเราสามารถพบคำหลัก '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]