Computer >> Máy Tính >  >> Lập trình >> C ++

Ý nghĩa của 'const' cuối cùng trong khai báo hàm của một lớp C ++?

Đôi khi chúng ta có thể tìm thấy từ khóa ‘const’ ở cuối khai báo hàm. Vậy nó có nghĩa là gì?

Sử dụng một hàm này có thể được thực hiện như một hằng số. Ý tưởng của hàm hằng là, hàm không thể được sửa đổi từ các đối tượng, nơi chúng được gọi. Bạn nên sử dụng các hàm hằng trong chương trình của chúng tôi.

Hãy để chúng tôi xem một ví dụ về hàm hằng.

Ví dụ

#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;
      }
};

Đầu ra

The value is: 80

Bây giờ chúng ta sẽ thấy một điểm quan trọng khác liên quan đến các hàm hằng. Các hàm hằng có thể được gọi từ bất kỳ loại đối tượng nào, như bạn đã thấy trong ví dụ trên. Nhưng một số hàm không phải hằng số không thể được gọi từ các đối tượng hằng số.

Ví dụ

#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();
}

Đầu ra

[Error] passing 'const MyClass' as 'this' argument of 'int
MyClass::getVal()' discards qualifiers [-fpermissive]