تفاوتC++ و C# چیه؟

شروع موضوع توسط من ‏10 جولای 2005 در انجمن Visual C#.Net

  1. من

    من Registered User

    تاریخ عضویت:
    ‏18 مارس 2005
    نوشته ها:
    1,215
    تشکر شده:
    58
    محل سکونت:
    Toronto
    سلام بچه ها . من تازه برنامه نویسی با C++ رو شروع کردم . می خواستم بدونم که این زبان چه تفاوتهایی با C# داره ؟
     
  2. jigily_pigily

    jigily_pigily کاربر تازه وارد

    تاریخ عضویت:
    ‏15 ژوئن 2005
    نوشته ها:
    57
    تشکر شده:
    0
    c# همه کارست يعنی از برنامه واسه وب تا مبايل مينويسه شبکه رو بزن کنار c++ ميشه c# تموم
     
  3. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    سلام
    اولا با 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++ قویترین
    زبان دنیاست.
     
  4. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    حتما تا حالا فهميدي كه فرق این دوتا مثل فرق مورچه و آفتابه است ! :lol:
    منتها اگر از الان میخوای یه زبونی رو شروع کنی و روش کار کنی به نظر من الان سی شارپ بهتر بازار کار داره ، درضمن درکش هم راحت تره ، کار کردن باهاش هم راحت تره .

    بازم خودت میدونی . هرتصمیمی که میگیری برات آرزوی موفقیت میکنم .
     
  5. Tiva

    Tiva Registered User

    تاریخ عضویت:
    ‏6 آپریل 2005
    نوشته ها:
    708
    تشکر شده:
    114
    كسی چیزی در مورد +++C شنیده ؟؟

    راستی چرا سرعت برنامه های نوشته شده با دات نت كمتر به نظر می رسه ؟؟
     
  6. hellbound

    hellbound کاربر تازه وارد

    تاریخ عضویت:
    ‏25 ژوئن 2005
    نوشته ها:
    181
    تشکر شده:
    0

    دوستان درباره فرق هاش توضیح دادن ولی من اینو اضافه کنم که کلا هم چیز خوبیه هم چیز بدیه... مثلا اگه بخوای با C#باهاش برنامه ساده اطلاعاتی بنویسی خوبه و تحت ویندوز و سیستم پولی مایکروسافت باشی و کاربرت هم با .net حال بکنه بهتره... اما من خودم که هنوز به هیچکدومش تسلط ندارم ترجیح میدم C++ رو کامل کنم چون برخلاف چیزی که برای C# میگن دستت بیشتر بازه با اینکه باید بیشتر برنامه نویسی بکنی ولی دستت بیشتر بازه...

    این .net مایکروسافت مثل یه جعبه ابزاره آماده است که ابزار هاش ممکنه خیلی با سرعت نباشه و اصطحلاک سیستم خیلی بالاست و شاید اونقدر هم نتونی ابزارشون رو تغییر بدی... ولی تو C++ همه چیز رو باید از اول بسازی...
     
  7. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    با سلام.
    تفاوت ويژوال سي با ويژوال سي دات نت چيه؟
    .
     
  8. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    ویژوال سی دات نت از فریم ورک دات نت استفاده می کنه اما ویژوال سی نه
     
  9. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    دات نت فريم ورك چيه؟
    .
     
  10. mohammad_110

    mohammad_110 کاربر فعال برنامه نویسی کاربر فعال

    تاریخ عضویت:
    ‏22 ژانویه 2006
    نوشته ها:
    60
    تشکر شده:
    0
    سلام :)

    بحث جالبی بود .
    لطفا این موارد 2 و 3 و 6 رو یکم بیشتر توضیح بدید.
     
  11. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,344
    تشکر شده:
    1,314
    محل سکونت:
    یه خورده اونورتر
    یکی از قابلیت های مهم و خوب سی شارپ مدیریت اتوماتیک حافظه هستش. شما دیگه در سی شارپ با پینتر ها و اشاره گر ها سر و کله نمی زنید. سی شارپ جواب مایکروسافت به تکنولوژی جاواست. در واقع اگر بتونید بگید که فرق جاوا و سی++ در چی هست جوابش برای این سوال هم جواب خواهد بود! و البته همونطور که دوستان گفتند در حال حاضر سی شارپ فقط با داخل .نت فریم ورک هست و هر کاری که با .نت بشه انجام داد با اون هم میشه انجام داد ولی سی++ چیزی فراتر از .نت فریم ورک هست، دسترسی کامل به همه چیز...
     
  12. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    مجموع حدود 4500 کلاس هست که توسط ماکروسافت برای ایجاد برنامه نویسی راحت ارائه شده

    البته من با شناختی که از شما دارم فکر می کنم این مجموعه بعه درد شما نمنی خوره چون شما در دات نت محدود می شید مدیرت حافظه و کار با اشاره گرها از شما گرفته می شه و به دات نت سپرده می شه
    البته این رو هم بگم ماکروسافت دات نت را با آرزو کنار گذاشتن جاوا ارائه کرد اما فکر نمی کنم به این آرزوش برسه
     
  13. avajang.com .leftjee.ir.right
  14. Arash_j13

    Arash_j13 Registered User

    تاریخ عضویت:
    ‏18 فوریه 2005
    نوشته ها:
    778
    تشکر شده:
    2
    محل سکونت:
    مشهد
    به نظر نمی رسه واقعا کمتره این بر می گرده به ساختار دات نت و اینکه دات نت برنامه های شما رو به زبان ماشین ترجمه نمی کنه در واقع ماکروسافت با الهام گرفتن(بخونید دزدین) این طرح از جاوا خواست تا برنامه هاس مستقل از ماشین باشن
    برای اینکار برنامه های به یع کد میانی که اسمش توی دات نت IL هست(یه چیزی تو مایه های بایت کد جاوا) تبدیل می شه بعدا در زمان اجرا دات نت این کد میانی رو به کد ماشینی که روش اجرا می شه تبدیل می کنه این تبدیل دوباره زمان می بره که باعث کندتر شدن برنامه می شه
     
  15. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    در تاپيك زير كه در تالار برنامه نويسي است توضيحاتي راجع به دات نت فريم ورك داده شده.

    http://forum.persiantools.com/showthread.php?t=11676
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانیfootbal