Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Nạp chồng hàm và từ khóa const trong C++


C++ cho phép nạp chồng hàm thành viên dựa trên const của đối tượng (this).

Overload theo const của đối tượng

class MyClass {
public:
    void func() { cout << "Normal\n"; }
    void func() const { cout << "Const\n"; }
};

MyClass obj;       obj.func(); // gọi non-const
const MyClass cobj; cobj.func(); // gọi const

Kết quả

Normal
Const

Overload theo const của tham số (chỉ hoạt động với con trỏ/tham chiếu)

void func(int* p) { cout << "non-const ptr\n"; }
void func(const int* p) { cout << "const ptr\n"; }

Với tham số truyền giá trị (int vs const int) thì không nạp chồng được (biên dịch lỗi).