Const member functions là hàm được khai báo const. Đối tượng gọi hàm này không thể bị sửa đổi. Nên dùng từ khóa const để tránh thay đổi vô ý.
Const member function có thể được gọi bởi mọi loại object. Non-const function chỉ gọi được bởi non-const object.
Cú pháp:
datatype function_name() const;
Ví dụ
#include <iostream>
using namespace std;
class Demo {
int val;
public:
Demo(int x = 0) {
val = x;
}
int getValue() const {
return val;
}
};
int main() {
const Demo d(28);
Demo d1(8);
cout << "The value using object d: " << d.getValue();
cout << "\nThe value using object d1: " << d1.getValue();
return 0;
}
Kết quả
The value using object d: 28 The value using object d1: 8
Lớp Demo có constructor mặc định, hàm getValue() const trả về val. Trong main: d là const object, d1 là thường. Cả hai đều gọi được getValue() vì nó là const function.