مفهوم چند ریختی (Polymorphism) در برنامه نویسی شیء گرا در C++
توضیحات:
مفهوم چندریختی (Polymorphism) در برنامه نویسی شیءگرا به امکان تعریف یک رابط یا عملکرد به گونهای است که بتواند به صورت متفاوت در انواع مختلف اشیاء و کلاسها اجرا شود. این مفهوم به برنامه نویس این امکان را میدهد که یک عملکرد یا رابط را برای چندین نوع مختلف از اشیاء و کلاسها پیادهسازی کند، بدون اینکه برنامه نویس نیازی به دقیق تغییر دادن کد خود داشته باشد.
در C++، چندریختی به دو صورت پیادهسازی میشود:
چندریختی از طریق تابع مجازی (Virtual Function Polymorphism):
- در این روش، از توابع مجازی (virtual functions) استفاده میشود. توابع مجازی در کلاس اصلی تعریف میشوند و کلاسهای فرزند میتوانند این توابع را با توابع پیادهسازی شده خود جایگزین کنند.
- وقتی یک شیء از نوع کلاس اصلی ایجاد میشود و از آن به عنوان یک شیء از کلاس فرزند استفاده میشود، تابع مجازی مربوط به کلاس فرزند فراخوانی میشود.
چندریختی از طریق تابع پشتیبانی (Function Overloading Polymorphism):
- در این روش، چندین تابع با نام یکسان اما با تعداد و یا نوع پارامترهای متفاوت تعریف میشوند. وقتی تابع فراخوانی میشود، کامپایلر با توجه به نوع و تعداد پارامترها، تابع مناسب را انتخاب میکند.
- این روش از چندریختی برای ایجاد عملکردهای متفاوت برای یک نام تابع استفاده میشود و به برنامه نویس این امکان را میدهد که توابع با نام یکسان را با پارامترهای متفاوت تعریف کند.
به این ترتیب، چندریختی در C++ به برنامه نویس این امکان را میدهد که کد قابل استفاده مجدد و قابل انعطافی را ایجاد کند و از اشیاء و کلاسهای مختلف به یک روش یکسان استفاده کند، بدون نیاز به تغییرات زیاد در کد.
موفق باشید
A.J
پست های مرتبط:
فروشگاه سورسا:
سورسا ، یک خانواده!
شما میتوانید از سورس های آماده به راحتی و با کپی پیست در پروژه خود استفاده بفرمایید
بله! سورسا به عنوان اولین و برترین مرجع سورس کد های آماده، تمامی سورس کد ها در زبان های مختلف را به صورت رایگان در اختیار شما قرار میدهد.
اگر سورس مد نظر شما تفاوتی با سورس فعلی دارد یا اینکه درخواست سورس دیگری را دارید میتوانید با کارشناسان سورسا در ارتباط باشید.
سورسا به عنوان مرجع سورس در تلاش است سورس کد ها و آموزش های تمامی زبان های برنامه نویسی مانند GO C++ Python C PHP SQL JS و… را تحت پوشش قرار داد