Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Override Keyword ใน C++


ในบทเรียนนี้ เราจะอธิบาย 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 ไม่ตรง
};