PDA

نسخه کامل مشاهده نسخه کامل : زبان های #C, C++, C چه فرقی با هم دارند ؟



khaiyam
18-02-2006, 19:13
زبان هاي c, c++ , C# چه تفاوتی دارند یعنی کدام بهتر و راحت تر است
چه مزیت هایی دارن
c++ این تلفظش چی هست

silver
18-02-2006, 19:23
دوست عزيز c++ سي پلاس پلاس زبان شي گرا هست و بطور كلي با c متفاوته .... اگر دنبال پايه اي ياد گرفتن هستي معمولا اول بايد زبانهاي ساده مثل پاسكال و c رو ياد بگيري بعد به سراغ زبانهاي شي گرا مثل c++ و دلفي بري .... زبانهاي شي گرا تحت win اجرا مي شن و داراي محيط گرافيكي هستند c# هم زبان c++ هست كه با زبان جاوا همراه شده

khaiyam
19-02-2006, 14:13
مرسي
اگر اطلاعات بيشتري داريد بزاريد

R£ɀД
20-02-2006, 08:46
اولا با C# فقط برنامه های تحت .NET میشه نوشت (در واقع C# برای .NET درست شده)
، اما با C++ هم برنامه های تحت .NET (managed) و هم برنامه های native میشه نوشت.
دوما هنوز برای کارهای سطح پایین (مثل Device Driver) و سنگین (مثل بازی های سه بعدی)
C++ انتخاب اول و آخر محسوب میشه.
3- C# خیلی راحتتر ، تمیزتر و خوش ساخت تر از C++ طراحی شده و از نظر شی گرایی
هم پشتیبانی بهتری داره نسبت به C++ . C# کاملا شی گراست و اصلا نمیتونید برنامۀ غیر شی گرا
در اون بنویسید ، در صورتی که با C++ میتونین هم شی گرا و هم غیر شی گرا ، برنامه بنویسید.
از ویژگی های C# :
1- مدیریت خودکار حافظه توسط CLR
2- پشتیبانی از یک نوع String داخلی
3- پشتیبانی از foreach
4- پشتیبانی کامل از delegate و event و interface و Property و attribute ها
5 - XML Documentation
6 – checked / unchecked keywords
و ...
در C# برای انجام تمام کارها از کلاس های .NET استفاده میشه ، در ضمن در C#
چیزی به نام فایلهای Header و #include و از این حرفا نداریم.
در واقع C# خیلی زیباتر از C++ طراحی شده ، چون به هر حال در طراحی C# از زبانهایی
مثل C++ و JAVA و Delphi درس گرفته شده و اشتباهات اون زبانها در C# تکرار
نشده ؛ به عنوان مثال در C++ به تعداد انگشتان دست ، نوع دادۀ String داریم.
یا Multiple Inheritance که خیلی دردسر سازه ،
یا مثلا در JAVA ، enum ها و Operator Overloading و Pointer و Property ها که همگی جزو
ضروریات محسوب میشن ، وجود ندارن.
البته کسانی که میخوان کار سنگین یا سطح پایین در .NET انجام بدن ، معمولا همۀ
قسمتهایی رو که امکانش هست با C# می نویسن و بقیه رو با C++ ؛ و در C# از کلاسهای
نوشته شده در C++ استفاده می کنن . (Wrapper Classes )
در کل C# ، سطح بالاتر(High Level ) از C++ است ؛ در C++ حتی میتونید مستقیما از
کد اسمبلی استفاده کنید.
در ضمن C# اولین زبان Component Oriented در خانوادۀ C محسوب میشه.
خیلی تفاوتها و شباهتهای دیگری هم هست که در صورت پرداختن به اونا بحث خیلی
تخصصی میشه ، فقط در یه جمله بگم :
بزرگترین شباهت این دو زبان اینه که هر دو جزو خانوادۀ C هستن .
و بزرگترین تفاوت اینکه : C# یک زبان type-safe هست (بر خلاف C++ ) و فقط
باهاش میشه برنامه های تحت .NET نوشت.
البته قصدم از این مطالب اثبات برتری C# به C++ نبود ، چون به هر حال برای برنامه های
تحت .NET ، C# بهترین گزینه است و در جاهای دیگه هنوز هم C++ قویترین
زبان دنیاست.
منبع: persiantools

khaiyam
21-02-2006, 15:09
برنامه نويسي شي گرا چيست
منظور از كامپايل و كامپالر چيست
ممنون

R£ɀД
21-02-2006, 16:36
هنرمند جان شي گرا به زبان هايي مثل delphi , visual basick , ..... ميگن كه مثلا شما در اين زبان هاي برنامه نويسي احتياج به يك دكمه (command) يا ابزار ورود (text box) داريد و اين ابزار ها از قبل ساخته شده اند و شما كافيه اين ابزار ها رو روي روي محيط برنامه تون بندازين . در صورتي كه در زبان هايي كه شي گرا نيستند مانند C , pascal ... براي ايجاد يك دكمه نياز داره چندين خط كد بنويسيد تا يك دكمه رو طراحي كنيد.
وقتي شما يك برنامه رو نوشتيد اون برنامه براي اجرا شدن نياز داره كه به زبان ماشي ترجمه بشه ( آخه كامپيوتر فقط زبان ماشين رو ميشناسه ) كه كار تبديل ( ترجمه) برنامه نوشته شده شما به زبان قابل فهم ماشين رو كامپايلر انجام ميده.
كامپايل هم كه يعني برنامه ترجمه شده.
اميدوارم منظورم رو خوب رسونده باشم.

samira455
23-02-2006, 00:48
سلام دوست عزيز
برنامه نويسي شي گرا يعني مبتي بر شي است به اين معني که هر کاري که بخواهيد انجام دهيد بايد يک شي بسازيد.حالا ممکنه اين سوال پيش بيايد که <شي> چيست؟من جواب اين سوالو در قالب يک مثال ميدم:
فرض کن خداوند وقتي مي خواست انسانو خلق کنه از روي يک قالب(در شي گرائي به معناي کلاس است) که داراي ويژگي ها ئي بود مثلا دو تا چشم داشت يا دو تا پا داشت(در شي گرائي به آن خصوصيات (behavior) گفته مي شود) و رفتار هائي مخصوص به خودش داشت مثل فکر کردن ،راه رفتن،گريه کردن(در شي گرائي :رفتارMethod يا تابع گفته مي شود) آدم و حوا و انسانهاي ديگه مثل من و شما را خلق کرد .ما همان شي ها هستيم که از کلاس انسان خلق شده ايم،در واقع در رده انسان هستيم(رده نام ديگر کلاس در برنامه نويسي شي گرا است).
به قول آقاي ديتل ،کلاس مانند نقشه يک ساختمان است .بدون نقشه ساختمان يک معمار نمي تواند خانه اي بسازد،بدون کلاس،برنامه نويس نميتواند شي ايجاد کند و از آن مهمتر از يک کلاس براي ساختن چند شي از همان کلاس مي توان چند بار استفاده کرد .همان طور که از يک نقشه ساختمان براي ساختن چند خانه مي توان چند بار استفاده کرد. در واقع کلاس تعريف يک شي است نه خود شي.
پس به اين نتيجه رسيديم که شي دو جز دارد:خصوصيات +رفتار
در c واحد برنامه نويسي تابع است ولي در C واحد برنامه نويسي کلاي است که نهايتا از روي آن شي ايجاد مي شود.
وقتي گفته مي شود که يک زبان شي گرا هست منظور اين است که اين زبان سه ويژگي زير را پشتيباني مي کند:
1.کپسوله سازي:encapsulation
2.وراثت:Inheritance
3.چند ريختي:polymorphism


کپسوله سازي:
برنامه نويسي شي گرا (Object Oriented Programming يا OOP) داده ها (خصوصيات) و توابع(رفتار) را در بسته هائي به نام کلاس محصور مي کند.و از اين طريق جزئيات پياده سازي در داخل خود کلاس ها پنهان هستند.(فقط اشياء کلا سهاي ديگر مي دانند که فلان شي از فلان کلاس ،فلان رفتار را انجام ميدهد ولي نمي دانند که اين شي چگونه اين رفتار را انجام مي دهد)

وراثت:
يعني يک کلاس از يک کلاس ديگر ارث مي برد.ارث بري صورتي از قابليت استفاده مجدد است.فرض کن يک کلاس به نام دانشجو داري که رفتار و خصوصياتي رو براش تعريف کردي حالا مي خواهي يک کلاس دانشجوي کارشناسي تعريف کني.حالا فکر مي کني کدام روش مناسبتره : يک کلاس کاملا جديد تعريف کني يا اينکه کلاس دانشجوي کارشناسي رو نوعي از دانشجو قرار بدي.
اگر روش دوم را انتخاب کني يک برنامه نويس حرفه اي هستي.با اين کار کلاس دانشجوي کارشناسي از کلاس دانشجو ارث مي برد يعني کلاس دانشجوي کارشناسي تمام خصوصيات يک دانشجو را به ارث مي برد و علاوه بر آن مي توني خصوصيات و رفتار هاي ديگه اي را علاوه بر خصوصيات دانشجو ،که مختص يک دانشجوي کارشناسي است به آن اضافه کني.
در اين حالت به کلاس دانشجو <کلاس والدparent class يا پايه >و به کلاس دانشجوي کارشناسي <کلاس مشتق شدهdrived class > گفته مي شود .دو نوع ارث بري داريم:يگانه و چند گانه

چند ريختي:
فرض کن مجموعه اي از کلاس هاي هندسي مثل دايره و مثلث و مستطيل داري که همه از کلاس پايهshape مشتق شده،هر کدام از اين کلاسها فرمول رياضي خاص خودشونو براي محاسبه مساحت دارند.فرض کن در کلاس والد، رفتار(تابع) area تعريف شده باشد
در نتيجه هر کدام از کلاسهاي مشتق شده تابعarea مخصوص به خودشان را دارند ولي نام تمام آنها همان area مربوط به کلاس والد است.اين امکان با استفاده از پشتيباني يک زبان از polymorphism به وجود مي آيد.
.................................................. .................................................. .............................................

کامپايلر:
اگر دانشجوي کارشناسي کامپيوتر باشي درسي به نام کامپايلر خواهي داشت که توي اون بايد يک کامپايلر بنويسي.
کامپايلر کد نوشته شده به يک زبان برنامه نويسي سطح بالا را مي گيره و به کد ماشين تبديل مي کنه(فايل exe ) به اين کار کامپايل کردن گفته مي شود،بعد شما با اجراي اون فايل اجراي بر نامه را مي بينيد.
کامپايلر در کنار اين کار Error Detection يا تشخيص خطا را هم انجام مي دهد (مثلا اگر داده اي از جنس string را در متغيري از جنس int ريخته شود error مي دهد) حتي کامپايلر هاي قوي تر Error Correction يا تصحيح خطا را هم انجام مي دهد(با استفاده از الگوريتم هاي هوش مصنوعي).

امیدوارم مطلبو واضح بیان کرده باشم

farzanehm
09-04-2006, 23:17
c يك زبان ساخت يافته
c++ يك زبان بين ساخت يافتگي و شي گرايي
c# كاملا شي گرا

netspc
09-04-2006, 23:40
البته وي بي شي گراي كامل نيست در واقع يك زبان ساخت يافته هست كه چند ويژگي شي گراي مثل كپسول كردن و وراثت ساده به اون اضافه شده.
در ضمن زبان سي پلاس پلاس يك زبان هايبريد هست و نه بين ساخت يافتگي و شي گرايي!!!

MehranB
10-04-2006, 10:35
من شنیدم که تنها زبان شی گرای مطلق که همه چیز در اون به شکل object وجود داره java و Smaltalkاست و بقیه زبان ها ازجمله C++ فقط از شی گرایی پشتیبانی میکنند کاملا شی گرا نیستندC#هم تقریبا کپی شرکت مایکروسافت از javaشرکتSunاست یعنی از نظر مدیریت حافظه با C++متفاوته در ضمن در c++ segmentهای حافظه محدودیت خاصی ندارند در حالی که در Cمثل محیط DOS به 64 k محدود میشن (که این میتونه از مزیته های C به C++باشه برای ساخت برنامه های خیلی بزرگ)Java که یک زبان portable است که بتونه روی دستگاه های مختلف کار کنه که روی یه ماشین مجازی JVMاجرا میشه البته در مورد C#اطلاعات ندارم چون تاحالا باحاش کار نکردم!

netspc
10-04-2006, 10:52
دقيقاَ درسته زبان خالص شي گرا java بوده كه حتي شما structure هم ندارين و براي اون بايد كلاس تعريف كنين
ولي c شارپ هم شي گراي كامل هست ولي از چند ويژگي خوب زبانهاي ساختيافته هم استفاده كرده مثل همون ساختار
البته زبانهاي شي گراي ديگه هم هست ولي مانند جاوا عمومي نشدند

eli9000
09-10-2013, 14:35
سلام ببخشید یه سوال
استادمون یه پروژه از ما خواسته که برنامه یه داروخونه رو بنویسیم واسه درس پایگاه داده تو محیط SQLسرور
بعد من می خواستم برم یه زبان برنامه نویسی رو یاد بگیرم به نظرتون C# برام بهتره یا C++
البته من C++ رو کتابشو پاس کردم اما هرچی بلدم به صورت تئوریه یعنی عملی بلد نیستم:(:n03:

Life24
09-10-2013, 16:38
سلام ببخشید یه سوال
استادمون یه پروژه از ما خواسته که برنامه یه داروخونه رو بنویسیم واسه درس پایگاه داده تو محیط SQLسرور
بعد من می خواستم برم یه زبان برنامه نویسی رو یاد بگیرم به نظرتون C# برام بهتره یا C++
البته من C++ رو کتابشو پاس کردم اما هرچی بلدم به صورت تئوریه یعنی عملی بلد نیستم:(:n03:

سلام
سی شارپ برای این منظور کار را راحت می کند.