Programming? – Telegram
Programming?
11.9K subscribers
373 photos
645 videos
978 files
512 links
🏅Channel privileges

🎗Ninth year of operation
🎗Completely specialized members
🎗Transmitter in channel automation
🎗, ...

🎯 second channel Programming books 👇
@topbookit

🎯 third channel laptop👇
@sysline


👨🏻‍💻Admin channels : @coderme
Download Telegram
چند ریختی Polymorphism در ++c :
چندريختی در C++ توسط توابع مجازی پياده سازی می شود. تابع مجازی تابع عضوی است که انتظار می رود در کلاس های مشتق شده دوباره تعريف شود. درک چندريختی بدون استفاده از توارث و انتزاع غيرممکن است.
چندريختی (polymorphism) يکی از ويژگی های زبان های شیءگراست. به واسطه چندريختی توابع می توانند به شيوه های مختلف پياده سازی شوند ولی از طريق يک اسم يکسان در دسترس قرار بگيرند.

چندريختی در ++C به دو شکل پشتيبانی می شود؛ در زمان کامپايل و در زمان اجرا. سربارگذاری توابع و عملگرها نمونه هائی از چندريختی در زمان کامپايل هستند. چندريختی در زمان اجرا با تلفيق وراثت و توابع مجازی حاصل می شود.
به مثال زیر توجه کنید
#include <iostream>
using namespace std;

class Shape {
protected:
int width, height;
public:
Shape( int a=0, int b=0)
{
width = a;
height = b;
}
int area()
{
cout « "Parent class area :" «endl;
return 0;
}
};
class Rectangle: public Shape{
public:
int area ()
{
cout « "Rectangle class area :" «endl;
return (width * height);
}
};
class Triangle: public Shape{
public:
int area ()
{
cout « "Triangle class area :" «endl;
return (width * height / 2);
}
};
// Main function for the program
int main( )
{
Shape *shape;
Rectangle rec(10,7);
Triangle tri(10,5);

// store the address of Rectangle
shape = &rec;
// call rectangle area.
shape->area();

// store the address of Triangle
shape = &tri;
// call triangle area.
shape->area();

return 0;
}
در کد بالا طبق توضیح قبل در مبحث ارث بری می بینید که کلاس triangle از کلاس shape ارث برده و متدهایی که در کلاس shape تعریف شده در کلاس triangle فراخوانی شده اگه به کلاس shape دقت کنید می بینید یک متد به نام area تعریف شده و داخل این متد یه رشته چاپ می شه همچنین اگر به کلاس triangle توجه کنید می بنید بعد ارث بری کلاس triangle متد area رو فراخوانده است ولی دستورات داخلی این متد تغییر کرده است و ضریب width , height رو بر می گرداند به این فرآیند چند ریختی می گویند.
در حقیقت متد همان متدی است که در کلاس پایه تعریف شده ولی دستوراتی که داخل متد هست تغییر پیدا کرده
استراکچر struct در ++c:
ساختمان مجموعه ای از عناصر است که میتوانند همنوع نباشند. کلاس نیز به همین صورت تعریف شده است. شیوه تعریف ساختمان نیز با کلاس یکسان است. به این ترتیب ارتباط خیلی نزدیکی با یکدیگر دارند.در واقع، ساختمان از زبان C به C++ به ارث رسیده است. تنها تفاوت کلاس و ساختمان در C++ این است که اعضای کلاس در حالت عادی بصورت اختصاصی اند ولی اعضای ساختمان بصورت عمومی اند. در سایر موارد دقیقا یکسان هستند. برای تعریف نوع ساختمان از کلمه کلیدی struct استفاده میشود. این دستور بصورت زیر بکار می رود:
Struct نام نوع ساختمان

{
publc:
عناصر عمومی ساختمان

Private:

عناصر اختصاصی ساختمان

};
اعضای عمومی و اختصاصی ساختمان، همچون کلاس میتوانند بصورت داده ای یا تابعی باشند. عناصری که بلافاصله پس از سطر مربوط به کلمه کلیدی struct ظاهر میشوند، اعضای عمومی اند. اعضایی که در بخش private می آیند، اعضای اختصاصی ساختمان میباسند.

به هرحال، ساختمانها در C++ میتوانند کاربرد کلاسها را داشته باشند. به عبارت دیگر، ساختمانها نیز مانند کلاسها میتوانند برای تعریف اشیا به کار گرفته شوند.
به مثال زیر توجه کنید
Struct emp{

Void input();

Void output();

Private:

Int no;

Char name;
}
در کد بالا تعریف ساختار رو می بینم ولی اگر بخواییم از این ساختاری که ایجاد می کنیم استفاده کنیم به کدر زیر دقت کنید
#include <iostream>


using namespace std;

struct pointform
{
int top;
int bottom;
int left;
int right;
};


int main() {

pointform sa = { 0, 0, 0, 0};
cout « sa.bottom « endl;
cout « sa.left « endl;
cout « sa.right « endl;
cout « sa.left « endl;

return 0;
}
در کد بالا یک ساختار تعریف کردیم از نقاط مختلف یک فرم و در قسمت main به صورتی که می بینید یک نمونه از ساختار بالا مثل کلاس ها که شی از روی کلاس می ساختیم ایجاد کردیم و مقادیر آیتم ها رو چاپ کردیم
پایان آموزش زبان ++c
فایل pdf مربوط به آموزش های زبان ++c که از اول تا آخر در این کانال آموزش داده شد تا فردا تهیه شده و در کانال قرار داده می شود.
علی آقا یکی از مدیران گروه زحمت کشیدن و آموزش های زبان ++c که در کانال هستن رو به صورت pdf کردن که براتون قرار می دم دوستانی که نتونستن پا به پای آموزش ها بیان از این pdf استفاده کنن
#pdf c++