واضح آرشیو وب فارسی:سایت ریسک: khaiyam18-02-2006, 07:13 PMزبان هاي c, c++ , C# چه تفاوتی دارند یعنی کدام بهتر و راحت تر است چه مزیت هایی دارن c++ این تلفظش چی هست silver18-02-2006, 07:23 PMدوست عزيز c++ سي پلاس پلاس زبان شي گرا هست و بطور كلي با c متفاوته .... اگر دنبال پايه اي ياد گرفتن هستي معمولا اول بايد زبانهاي ساده مثل پاسكال و c رو ياد بگيري بعد به سراغ زبانهاي شي گرا مثل c++ و دلفي بري .... زبانهاي شي گرا تحت win اجرا مي شن و داراي محيط گرافيكي هستند c# هم زبان c++ هست كه با زبان جاوا همراه شده khaiyam19-02-2006, 02:13 PMمرسي اگر اطلاعات بيشتري داريد بزاريد R£ɀД20-02-2006, 08:46 AMاولا با 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 khaiyam21-02-2006, 03:09 PMبرنامه نويسي شي گرا چيست منظور از كامپايل و كامپالر چيست ممنون R£ɀД21-02-2006, 04:36 PMهنرمند جان شي گرا به زبان هايي مثل delphi , visual basick , ..... ميگن كه مثلا شما در اين زبان هاي برنامه نويسي احتياج به يك دكمه (command) يا ابزار ورود (text box) داريد و اين ابزار ها از قبل ساخته شده اند و شما كافيه اين ابزار ها رو روي روي محيط برنامه تون بندازين . در صورتي كه در زبان هايي كه شي گرا نيستند مانند C , pascal ... براي ايجاد يك دكمه نياز داره چندين خط كد بنويسيد تا يك دكمه رو طراحي كنيد. وقتي شما يك برنامه رو نوشتيد اون برنامه براي اجرا شدن نياز داره كه به زبان ماشي ترجمه بشه ( آخه كامپيوتر فقط زبان ماشين رو ميشناسه ) كه كار تبديل ( ترجمه) برنامه نوشته شده شما به زبان قابل فهم ماشين رو كامپايلر انجام ميده. كامپايل هم كه يعني برنامه ترجمه شده. اميدوارم منظورم رو خوب رسونده باشم. samira 45523-02-2006, 12:48 AMسلام دوست عزيز برنامه نويسي شي گرا يعني مبتي بر شي است به اين معني که هر کاري که بخواهيد انجام دهيد بايد يک شي بسازيد.حالا ممکنه اين سوال پيش بيايد که <شي> چيست؟من جواب اين سوالو در قالب يک مثال ميدم: فرض کن خداوند وقتي مي خواست انسانو خلق کنه از روي يک قالب(در شي گرائي به معناي کلاس است) که داراي ويژگي ها ئي بود مثلا دو تا چشم داشت يا دو تا پا داشت(در شي گرائي به آن خصوصيات (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 يا تصحيح خطا را هم انجام مي دهد(با استفاده از الگوريتم هاي هوش مصنوعي). امیدوارم مطلبو واضح بیان کرده باشم farzanehm09-04-2006, 11:17 PMc يك زبان ساخت يافته c++ يك زبان بين ساخت يافتگي و شي گرايي c# كاملا شي گرا netspc09-04-2006, 11:40 PMالبته وي بي شي گراي كامل نيست در واقع يك زبان ساخت يافته هست كه چند ويژگي شي گراي مثل كپسول كردن و وراثت ساده به اون اضافه شده. در ضمن زبان سي پلاس پلاس يك زبان هايبريد هست و نه بين ساخت يافتگي و شي گرايي!!! MehranB10-04-2006, 10:35 AMمن شنیدم که تنها زبان شی گرای مطلق که همه چیز در اون به شکل object وجود داره java و Smaltalkاست و بقیه زبان ها ازجمله C++ فقط از شی گرایی پشتیبانی میکنند کاملا شی گرا نیستندC#هم تقریبا کپی شرکت مایکروسافت از javaشرکتSunاست یعنی از نظر مدیریت حافظه با C++متفاوته در ضمن در c++ segmentهای حافظه محدودیت خاصی ندارند در حالی که در Cمثل محیط DOS به 64 k محدود میشن (که این میتونه از مزیته های C به C++باشه برای ساخت برنامه های خیلی بزرگ)Java که یک زبان portable است که بتونه روی دستگاه های مختلف کار کنه که روی یه ماشین مجازی JVMاجرا میشه البته در مورد C#اطلاعات ندارم چون تاحالا باحاش کار نکردم! netspc10-04-2006, 10:52 AMدقيقاَ درسته زبان خالص شي گرا java بوده كه حتي شما structure هم ندارين و براي اون بايد كلاس تعريف كنين ولي c شارپ هم شي گراي كامل هست ولي از چند ويژگي خوب زبانهاي ساختيافته هم استفاده كرده مثل همون ساختار البته زبانهاي شي گراي ديگه هم هست ولي مانند جاوا عمومي نشدند سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 6360]