เมธอดคลาส C ++ มีthis
พารามิเตอร์โดยนัยซึ่งมาก่อนค่าที่ชัดเจนทั้งหมด ดังนั้นฟังก์ชันที่ประกาศภายในคลาสดังนี้:
class C {
void f(int x);
คุณสามารถจินตนาการได้ว่ามีลักษณะดังนี้:
void f(C* this, int x);
ตอนนี้ถ้าคุณประกาศด้วยวิธีนี้:
void f(int x) const;
เหมือนกับว่าคุณเขียนสิ่งนี้:
void f(const C* this, int x);
นั่นคือการต่อท้ายconst
ทำให้this
พารามิเตอร์ const ซึ่งหมายความว่าคุณสามารถเรียกใช้เมธอดบนอ็อบเจ็กต์ const ของประเภทคลาสและเมธอดไม่สามารถแก้ไขอ็อบเจ็กต์ที่ถูกเรียกใช้ (อย่างน้อยก็ไม่ใช่ผ่านแชนเนลปกติ)