فرق struct با class - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

فرق struct با class

+8 امتیاز
سلام . تفاوت struct با کلاس در چیه البته قضیه اینکه با تعریف کلاس می تونیم از وراثت استفاده کنیم را اطلاع دارم آیا فرق دیگری هم با هم دارند از نظر حافظه یا مزیت دیگر؟ ممنون
سوال شده آذر 1, 1392  بوسیله ی maziyar ebrahimi (امتیاز 87)   6 13 20
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade

4 پاسخ

+5 امتیاز
 
بهترین پاسخ

جفتشون مانند همدیگه هستند .

تفاوتی که باهم دارن اینه که در class عضو ها بصورت خودکار private هستند ولی در struct بصورت خودکار public هستند .

بااینکه هردوی اینا ازدید کارایی یکی هستند , ولی از struct بیشتر برای تعریف ساختارهای داده ای ساده بکاربرده میشه .

پاسخ داده شده آذر 1, 1392 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
ویرایش شده فروردین 30, 1393 بوسیله ی Ali Rahbar
یک تفاوت دیگه ای هم که دارن این هست که:
استفاده از ... <template<class T مجاز هست،
ولی استفاده از ... <template<struct T خیر...
+8 امتیاز

تو C++ هم struct می تونه از وراثت استفاده کنه عملاً فرقی وجود نداره یک مسئله ای که وجود داره struct ی که بدون متد باشه همانند struct ها در ansi c که بهش POD struct میگن.

پاسخ داده شده آذر 1, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
یعنی ساختاری که متد نداره بهینه سازی میشه؟
نه ربطی به بهینه سازی نداره متد ها  توی سایز struct هم حتی تاثیر هم ندارن
+2 امتیاز

يک تفاوت دیگه هم اینه که زمان ارث بردن از یک struct

اگر نحوه ارث بری ذکر نشه برای struct بصورت پیش فرض public درنظر گرفته میشه ولی برای کلاس private 

struct A {};

struct B:A //moadele struct B:public A
{};

class C {};

class D: C//moadele class D:private C
{};

 

پاسخ داده شده تیر 1, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
0 امتیاز
تفاوت هایی اساسی دارند

ب طور خلاصه  و کلی این میشه:

فقط کلاس ها:

وراثت را پوشش می دهد

نوع مرجع هستند

مرجع میتونه null باشه

دارای سربار حافظه در هر نمونه جدید

فقط ساختار ها:

وراثت را به صورت کامل پوشش نمیدهند

نوع ارزشی هستند

مرجع نمیتواند مقدار null داشته باشد

در هر نمونه جدید دارای سربار حافظه نیست

هردوی کلاس ها و ساختار ها:

از رابطه ها یا interface ها پشتیبانی می کنند

میتوانند متد و رویداد را در بدنه خود داشته باشند

 

 

کم و کثری داشت اساتید محترم ببخشید
پاسخ داده شده بهمن 3, 1397 بوسیله ی seyed_ghasem90 (امتیاز 15)  
...