ในบทเรียนนี้ เราจะอธิบาย override Keyword ใน C++
Override คืออะไร?
override ใช้บอก Compiler ว่า Function นี้ Override Virtual Function จาก Base Class ช่วยจับ Error ได้เวลา Compile ถ้า Signature ไม่ตรง
ตัวอย่าง
#include <iostream>
using namespace std;
class Base {
public:
virtual void func() {
cout << "I am in base" << endl;
}
};
class Derived : public Base {
public:
void func() override { // ใช้ override
cout << "I am in derived class" << endl;
}
};
int main() {
Base b;
Derived d;
Base* ptr = &d;
ptr->func(); // เรียก Derived::func() ผ่าน Polymorphism
d.func(); // เรียก Derived::func() โดยตรง
return 0;
}
ผลลัพธ์
I am in derived class I am in derived class
ประโยชน์ของ override
- จับ Error: ถ้า Signature ไม่ตรง Base (Typo, Parameter ผิด) → Compile Error
- อ่านโค้ดง่าย: เห็นชัดว่าเป็น Override
- Documentation: บอกว่า Intent คือ Override
ตัวอย่าง Error ที่ override จับได้
class Base {
virtual void func(int x);
};
class Derived : public Base {
void func(double x) override; // ERROR: Parameter type ไม่ตรง
};