Object Oriented in Cpp, آموزش ++c, زبان c++, َشی گرایی در سی پلاس پلاس

Function Overriding در سی پلاس پلاس

Function Overriding در سی پلاس پلاس

در این قسمت تیم کدگیت را با آموزش Function Overriding در سی پلاس پلاس همراهی کنید. در ابتدای این آموزش به توضیح Overriding می‌پردازیم سپس شرایط پیاده سازی Function Overriding در سی پلاس پلاس را بیان کرده، در پایان جلسه نیز یک مثال را پیاده سازی می‌کنیم. پیش نیاز این آموزش شامل موارد زیر می‌باشد:

  1. شی گرایی در سی پلاس پلاس
  2. ارث بری در سی پلاس پلاس
  3. توابع در سی پلاس پلاس

Function Overriding در سی پلاس پلاس

در یک کلاس اگر یک تابع همنام تابعی که در کلاس پدر خود وجود دارد،بنویسیم به آن override میگویند. به زبان دیگر اگر کلاس فرزند تابعی را پیاده سازی کند که به نوعی در کلاس پدر وجود داشته است، overriding در سی پلاس پلاس انجام داده ایم. شروط overriding به ترتیب زیر است:

  1. نام توابع یکسان باشد
  2. ورودی و خروجی توابع یکسان باشد
  3. توابع override شده حتما باید در دو کلاس متفاوت باشند و بین کلاس ها رابطه ارث بری وجود دارد.

مثال Function Overriding در سی پلاس پلاس

کلاسی به نام Parent داریم و کلاس دیگری به نام Child ساخته‌ایم به صورتی که Child از Parent ارث‌بری کند. کد این مثال به صورت زیر می‌باشد:

// Base class
class Parent
{
    public:
    void print()
    {
        cout << "The Parent print function was called" << endl;
    }
};

// Derived class
class Child : public Parent
{
    public:

    // definition of a member function already present in Parent
    void print()
    {
        cout << "The child print function was called" << endl;
    }

};

//main function
int main()
{
    //object of parent class
    Parent obj1;

    //object of child class
    Child obj2 = Child();


    // obj1 will call the print function in Parent
    obj1.print();

    // obj2 will override the print function in Parent
    // and call the print function in Child
    obj2.print();
    return 0;
}

همانطور که در کد بالا می‌بینید تابعی به نام Print هم در کلاس Parent و هم در کلاس  Child آمده است. به عبارت دیگر تابع Print در کلاس فرزند Override شده است. در تابع Main هر دو کلاس را ساخته و نحوه دسترسی به هر تابع را نشان داده‌ایم.

خروجی کد بالا به صورت زیر می‌باشد:

The Parent print function was called
The child print function was called

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *