#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;
}
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 رو بر می گرداند به این فرآیند چند ریختی می گویند.
در حقیقت متد همان متدی است که در کلاس پایه تعریف شده ولی دستوراتی که داخل متد هست تغییر پیدا کرده
ساختمان مجموعه ای از عناصر است که میتوانند همنوع نباشند. کلاس نیز به همین صورت تعریف شده است. شیوه تعریف ساختمان نیز با کلاس یکسان است. به این ترتیب ارتباط خیلی نزدیکی با یکدیگر دارند.در واقع، ساختمان از زبان C به C++ به ارث رسیده است. تنها تفاوت کلاس و ساختمان در C++ این است که اعضای کلاس در حالت عادی بصورت اختصاصی اند ولی اعضای ساختمان بصورت عمومی اند. در سایر موارد دقیقا یکسان هستند. برای تعریف نوع ساختمان از کلمه کلیدی struct استفاده میشود. این دستور بصورت زیر بکار می رود:
Struct نام نوع ساختمان
{
publc:
عناصر عمومی ساختمان
Private:
عناصر اختصاصی ساختمان
};
{
publc:
عناصر عمومی ساختمان
Private:
عناصر اختصاصی ساختمان
};
اعضای عمومی و اختصاصی ساختمان، همچون کلاس میتوانند بصورت داده ای یا تابعی باشند. عناصری که بلافاصله پس از سطر مربوط به کلمه کلیدی struct ظاهر میشوند، اعضای عمومی اند. اعضایی که در بخش private می آیند، اعضای اختصاصی ساختمان میباسند.
به هرحال، ساختمانها در C++ میتوانند کاربرد کلاسها را داشته باشند. به عبارت دیگر، ساختمانها نیز مانند کلاسها میتوانند برای تعریف اشیا به کار گرفته شوند.
به هرحال، ساختمانها در C++ میتوانند کاربرد کلاسها را داشته باشند. به عبارت دیگر، ساختمانها نیز مانند کلاسها میتوانند برای تعریف اشیا به کار گرفته شوند.
در کد بالا تعریف ساختار رو می بینم ولی اگر بخواییم از این ساختاری که ایجاد می کنیم استفاده کنیم به کدر زیر دقت کنید
#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;
}
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 به صورتی که می بینید یک نمونه از ساختار بالا مثل کلاس ها که شی از روی کلاس می ساختیم ایجاد کردیم و مقادیر آیتم ها رو چاپ کردیم
فایل pdf مربوط به آموزش های زبان ++c که از اول تا آخر در این کانال آموزش داده شد تا فردا تهیه شده و در کانال قرار داده می شود.
علی آقا یکی از مدیران گروه زحمت کشیدن و آموزش های زبان ++c که در کانال هستن رو به صورت pdf کردن که براتون قرار می دم دوستانی که نتونستن پا به پای آموزش ها بیان از این pdf استفاده کنن