PDA

View Full Version : تفاوت ++c و #c



saeed_rezaei
دوشنبه 27 فروردین 1386, 14:05 عصر
دوستان سلام
من چند تا سوال داشتم
1. تفاوت سی شارپ و سی ++ در چی هستش؟
2- آیا می شه به راحتی برنامه های هر نسخه رو توی اون یکی نسخه به اجرا درآورد.
3. آیا ورژن جدیدتری از سی طراحی شده؟

با تشکر

__H2__
دوشنبه 27 فروردین 1386, 14:20 عصر
1. تفاوت سی شارپ و سی ++ در چی هستش؟


تفاوت های خاصی دارند!
مثلاَ برنامه نویسی تحت فریم وروک با #C راحت تر است و دستوراتش با بیان های فریم وروک مچ تر و راحت تر هستند.
در عوض ++C تنها زبان برنامه نویسی پشتیبانی شده مایکروسافت است که همچنان قابلیت نوشتن کدهای بومی (مثلاَ طراحی API) و ساخت برنامه هایی بدون نیاز به فریم وروک را دارد و حتی میتواند با تنظیمات خاص کدهای مدیریت شده و مدیریت نشده را همزمان استفاده کند.

در اصل #C یک با وجودی که از ++C نشأت گرفته ولی زبانی جدید به حساب می آید که برای کار در محیط فریم ورک دات نت بهینه شده است (مثل VB.Net)



2- آیا می شه به راحتی برنامه های هر نسخه رو توی اون یکی نسخه به اجرا درآورد.


فکر نکم!



3. آیا ورژن جدیدتری از سی طراحی شده؟


نسخه جدید ++C هم، طبق معمول همراه VS.Net 2005 وجود دارد (ورژن 8) و همانطور که گفتم توانایی نوشتن برنامه بدون استفاده از فریم ورک را هم دارد. البته در مورد نسخه جدید شرکت های دیگر مثل بورلند اطلاعی ندارم.

saeed_rezaei
دوشنبه 27 فروردین 1386, 14:43 عصر
با تشکر از وقتی که به من اختصاص داید.


تفاوت های خاصی دارند!
حتی میتواند با تنظیمات خاص کدهای مدیریت شده و مدیریت نشده را همزمان استفاده کند.


می شه در مورد این مدیریت شده و نشده بیشتر توضیح بدید.
اگه من قصد یادیگری داشته باشم، توصیه شما استفاده از کدوم ورژن هست. مخصوصا که من علاقه ی زیادی به استفاده از توابع directx دارم.

متشکرم

rasoul_ras
دوشنبه 27 فروردین 1386, 15:11 عصر
دوستان سلام
من چند تا سوال داشتم
1. تفاوت سی شارپ و سی ++ در چی هستش؟


2- آیا می شه به راحتی برنامه های هر نسخه رو توی اون یکی نسخه به اجرا درآورد.

نه نمی شه ... ولی میشه از dll سی در سی شارپ البته با شرایط خاص استفاده کرد

3. آیا ورژن جدیدتری از سی طراحی شده؟

نه فکر نمی کنم....
البته vc++.net هست :لبخندساده::لبخندساده:ا


با تشکر
اصلا غیر قابل قاس اند شاید از نظر سینتکس یکی باشند ولی از نظر کارائی هر کدوم برای یک کارند
.net framework
باعث شده پرفورمنس این زبان خیلی پائینتر از C++ باشه ولی c# به قول ما ایرانیا هلو برو تو گلو و باعث شده که برنامه نویس خیلی از مثال رو نفهمیده حل کنه .

rasoul_ras
دوشنبه 27 فروردین 1386, 15:12 عصر
دوستان سلام
من چند تا سوال داشتم
1. تفاوت سی شارپ و سی ++ در چی هستش؟


2- آیا می شه به راحتی برنامه های هر نسخه رو توی اون یکی نسخه به اجرا درآورد.



3. آیا ورژن جدیدتری از سی طراحی شده؟





با تشکر

نه نمی شه ... ولی میشه از dll سی در سی شارپ البته با شرایط خاص استفاده کرد

البته vc++.net هست :لبخندساده::لبخندساده:ا

نه فکر نمی کنم....

rasoul_ras
دوشنبه 27 فروردین 1386, 15:13 عصر
دوستان سلام
من چند تا سوال داشتم
1. تفاوت سی شارپ و سی ++ در چی هستش؟


2- آیا می شه به راحتی برنامه های هر نسخه رو توی اون یکی نسخه به اجرا درآورد.



3. آیا ورژن جدیدتری از سی طراحی شده؟





با تشکر

نه نمی شه ... ولی میشه از dll سی در سی شارپ البته با شرایط خاص استفاده کرد

البته vc++.net هست :لبخندساده::لبخندساده:ا

نه فکر نمی کنم....

__H2__
سه شنبه 28 فروردین 1386, 11:40 صبح
می شه در مورد این مدیریت شده و نشده بیشتر توضیح بدید.
اگه من قصد یادیگری داشته باشم، توصیه شما استفاده از کدوم ورژن هست. مخصوصا که من علاقه ی زیادی به استفاده از توابع directx دارم.


سلام
کدهای مدیریت شده، کدهایی هستند که از امکانات فریم وروک استفاده میکنند. (زمان اجرای مشترک، جمع آوری کننده حافظه هرز و...) و کدهای مدیریت نشده کدهای خامی هستند که بدون نیاز به هیچ سکوی خاصی قابل اجرا هستند.

در کل من خودم با VB.Net کار میکنم ولی با #C هم ای ...
و همیشه هم به دیگران پیشنهاد میکنم که بسته به سلیقه شان از یکی از دوقولوهای افسانه ای #C یا VB.Net استفاده کنند !!!!!!!!!!!!!!
در مورد شما هم که میخواهید بین ++C و #C یکی را انتخاب کنید، فکر کنم #C بهتر است و توانایی انجام تمام پروژه های روز را دارد. (البته کسی منکر امکانات ++C نیست ولی اکثراَ #C و VB.Net سریعتر جواب میدهند و راحت تر هستند.)

در مورد DirectX هم مشکلی وجود ندارد، من خودم چندین نمونه کد که با VB.Net و #C نوشته شده اند دارم، که البته در تاپیکی دیگر هم قول Upload چندتایی را داده بودم، که انشا ا... عملیش میکنم.

omid_Ahmadi
سه شنبه 28 فروردین 1386, 13:32 عصر
بهتره برنامه نویسی یاد بگیرید، نه نحوه استفاده از یک زبان رو.
اگر می خواهید Game Programming کار کنید، C# یا VB.NET اصلا گزینه مناسبی نیستند. یعنی استفاده از پلت فرم .NET در این زمینه اصلا مناسب نیست. باید از زبان C++ استفاده کنید.



در مورد شما هم که میخواهید بین ++C و #C یکی را انتخاب کنید، فکر کنم #C بهتر است و توانایی انجام تمام پروژه های روز را دارد.


C# قابلیت پیاده سازی خیلی از پروژه ها رو نداره، حتی این ادعا در مورد C++ هم درست نیست.

SabaSabouhi
سه شنبه 28 فروردین 1386, 13:57 عصر
با سلام
یه تفاوت مهم دیگه اینه که ++C بر خلاف #C و Ansi C از Synatax بسیار پیچیده و بدی برخوردار هست.
یه امتیاز فوق العاده C در Syntax بسیار ساده این زبان بود که در ++C هیچ اثری از اون دیده نمیشه.

صبا صبوحی

omid_Ahmadi
سه شنبه 28 فروردین 1386, 14:28 عصر
لطفا از اظهار نظر شخصی و بی محتوی خودداری کنید.

این حرف هیچ صحتی نداره که سینتکس C++ خیلی سخت و پیچیده و سینتکس ANSI C بسیار روان و ساده هست.

reza.palang
سه شنبه 28 فروردین 1386, 15:06 عصر
اصلا غیر قابل قاس اند شاید از نظر سینتکس یکی باشند ولی از نظر کارائی هر کدوم برای یک کارند
.net framework
باعث شده پرفورمنس این زبان خیلی پائینتر از C++ باشه ولی c# به قول ما ایرانیا هلو برو تو گلو و باعث شده که برنامه نویس خیلی از مثال رو نفهمیده حل کنه .

البته که C sharp هلو تر از Cpp هست. پیشرفت تکنولوژی به همین میگم. اصولا بشر تلاش میکنه برای راحت تر انجام دادن کارهاش.
البته منکر قدرت Cpp نیستم.
انرژی رو صرف پیشرفت کنیم نه تعصب

__H2__
چهارشنبه 29 فروردین 1386, 15:30 عصر
البته که C sharp هلو تر از Cpp هست. پیشرفت تکنولوژی به همین میگم. اصولا بشر تلاش میکنه برای راحت تر انجام دادن کارهاش.
البته منکر قدرت Cpp نیستم.
انرژی رو صرف پیشرفت کنیم نه تعصب

سلام
قربان آدم چیز فهم! منظور من هم یک چیزی تو همین مایه ها بود !؟!؟!
ما هم منکر قدرت ++C نیستیم ولی برای طراحی پروژه های معمول ویندوزی و وبی #C راحت تر است (و البته دوقولویش VB.Net) فقط یکسری از کارهای خیلی سطح پایین را نمیتواند انجام دهد مثل همان طراحی API های ویندوز یا طراحی دایورهای خاص و بوت و... که آنهم مورد استفاده عموم برنامه نویسان نیست.

omid_Ahmadi
پنج شنبه 30 فروردین 1386, 09:31 صبح
فقط یکسری از کارهای خیلی سطح پایین را نمیتواند انجام دهد


اگر جمله رو به این صورت تغییر بدیم که .NET و هر زبانی که بخواهد از این پلت فرم استفاده کند فقط می تواند برنامه های Enterprise را انجام دهد، اون موقع جمله درست میشه.
معمولا توی هر فیلد دیگه ای به جز فیلد ذکر شده انتخابهای خیلی بهتری نسبت به .NET وجود داره.



پیشرفت تکنولوژی به همین میگم. اصولا بشر تلاش میکنه برای راحت تر انجام دادن کارهاش.


اگر بتونید به برنامه نویسی چیزی فراتر از نوشتن برنامه های تجاری کوچیک نگاه کنید، اون موقع قدرت .NET زیاد براتون پیشرفت تکنولوژی محسوب نمیشه و فقط یه مورد عادی جلوه میکنه.
می خواهم ببینم می تونی یه برنامه به جز توی فیلد Enterprise مثال بزنی که در اون استفاده از .NET بهترین گزینه هست و هیچ گزینه معادل دیگه ای هم وجود نداره؟

__H2__
پنج شنبه 30 فروردین 1386, 11:23 صبح
می خواهم ببینم می تونی یه برنامه به جز توی فیلد Enterprise مثال بزنی که در اون استفاده از .NET بهترین گزینه هست و هیچ گزینه معادل دیگه ای هم وجود نداره؟

سلام
جمله تان ایهام داره! ما هر چی مثال بزنیم میشه به نوعی روش برچسب Enterprise به آن چسباند! معیارتان چیست ؟؟؟ لطفاَ چند برنامه نمونه با اعمالشان مثال بزنید.
آیا شما به بازی ساده دو بعدی یا سه بعدی، برچسب Enterprise میزنید؟
یا مثلآ به برنامه های کوچک و مختصر که برای حل یک الگوریتم معمولی طراحی شده اند؟

راستی دوست عزیز! من یادم نمی آید کسی گفته باشد، "برای عمل ؟؟؟ هیچ گزینه معادل دیگه ای بجز دات نت وجود ندارد" ما هم همچین حرفی نزدیم.

omid_Ahmadi
پنج شنبه 30 فروردین 1386, 13:57 عصر
ما هر چی مثال بزنیم میشه به نوعی روش برچسب Enterprise به آن چسباند!
فکر نمی کردم زمینه هایی مثل Game Programming، Scientific Programming، AI و غیره هم جزئی از برنامه نویسی تجاری به حساب بیان.



آیا شما به بازی ساده دو بعدی یا سه بعدی، برچسب Enterprise میزنید؟
تا جایی که من مطالعه داشتم نوشتن بازی های پیچیده ای که امروز می بینید چندان هم ساده نیستند، برنامه نویسی Enterprise هم به شمار نمی رن.



یا مثلآ به برنامه های کوچک و مختصر که برای حل یک الگوریتم معمولی طراحی شده اند؟
الگوریتمهای پیچیده ای که توی شبکه های عصبی و یا هوش مصنوعی بررسی میشه شاید کوچیک باشن، اما نوشتن ساده ترین اونها از یه برنامه کامل حسابداری که شاید بیشتر از صد هزار خط کد داشته باشه زمان بیشتری لازم داره.

امیدوارم این مسئله براتون جا بیفته که .NET و زبانهای تحت اون برای برنامه نویسی تجاری بهینه شدن و به ندرت می تونن عالی ترین گزینه برای استفاده در زمینه های دیگه باشن. از لحاظ نوع برنامه های قابل پیاده سازی، C++ نسبت به زبانی مثل C# از انعطاف پذیری بیشتری برخورداره. C# و کلا .NET در خیلی از موارد اصلا گزینه مناسبی نیست.

linux
جمعه 31 فروردین 1386, 00:41 صبح
باز شروع کردید؟
خسته نمی شید از اینکه این همه بحث بی سر و ته می کنید؟
مقایسه بین C++ , C# مثل این هست که یک راننده کمپرسی با یک راننده لودر سر این دعوا می کنند که کمپرسی بهتر از لودر هست!
هر کسی می خواهد کاری انجام بدهدباید ابزار مناسب برای انجام آن کار را فراهم کند که با کمترین هزینه بیشترین بهره وری را داشته باشد کسی که بیاد برای جابجایی 10 کیلو هندوانه یک وانت نیسان اجاره کنه زمین و زمان بهش می خندند و اگر کسی بخواهد یک تن تیر آهن را بایک فرغون جابجا کنه یک جاهاییش پاره می شه و باز بقیه بهش می خندند.
پس شما اول باید ببنید که می خواهید چکار کنید بگردید دنبال ابزار مناسبش .

reza.palang
جمعه 31 فروردین 1386, 17:31 عصر
انرژی رو صرف پیشرفت کنیم نه تعصب

__H2__
شنبه 01 اردیبهشت 1386, 09:49 صبح
سلام
از دوست عزیز کاربر linux تشکر میکنم، من هم زیاد خوشم نمی آید ولی بعضی وقتها آدم یک چیزی میگه و برای دفاع از اون مطلب مجبور میشه ادامه بده و ترمز ....
من از طرف خودم از شما عضر خواهی میکنم، اما خوب با اجازه شما همچین بگی نگی یک کم دیگر اجازه دهید از حیثیت دات نت جون دفاع کنم !!! :چشمک:



تا جایی که من مطالعه داشتم نوشتن بازی های پیچیده ای که امروز می بینید چندان هم ساده نیستند، برنامه نویسی Enterprise هم به شمار نمی رن.


بازم قربان آدم چیزفهم، پس دیگه مشکلی نیست، معیار مشخص است و شما قبول دارید که نمیشود به بازیها برچسب Enterprise چسباند:بوس: من به زودی حداقل یک نمونه بازی ساده سه بعدی که با VB.Net درست شده را برایتان میگذارم.
(چون من در اصل برنامه نویس VB.Net هستم ولی با #C هم مشکلی ندارم (اصولاَ آنها را دوقلو میدانم!) و طبیعتاَ دفاع از قدرت #C دفاع از قدرت VB.Net است و بلعکس، و واضح است که کدهای VB.Net و #C تفاوت فاحشی ندارند و قابل تبدیل به یکدیگر هستند.)

بازهم تاکید میکنم منکر قدرت ++C نیستم ولی ضعف VB.Net و #C هم در کتم نمیرود!

SabaSabouhi
شنبه 01 اردیبهشت 1386, 15:02 عصر
با سلام
همیشه هم کدهاى VB و #C قابل تبدیل به یکدیگر نیستند و Syntax این دو زبان مانع این تبدیل مى‌شود. مثلاً در #C شما نمى‌توانید مثل VB.NET خاصیت با پارامتر داشته باشید.

صبا صبوحى

__H2__
یک شنبه 02 اردیبهشت 1386, 10:55 صبح
سلام
دوست عزیز، کاربر SabaSabouhi (http://barnamenevis.org/forum/member.php?u=17257) من که نگفتم یک راست کدها را کپی و پیس کنیم و بعد هم کامپایل، گفتم قابل تبدیل هستند، حالا یک پراتز شاید برورد و یک کروشه بیاید یا یکی برای بدون پارامتر پرانتز خالی بگذارید و اون یکی اصلاَ پرانتز نیاورید، فرق اصولی ندارد.

__H2__
چهارشنبه 05 اردیبهشت 1386, 09:41 صبح
سلام
رفع اشکاه و آماده سازی شبه بازی ای که در VB.Net بود کمی طولانی شد.
فعلاَ الاحساب در این راه روها چرخی بزنید تا ما برگردیم!
http://www.h-two.info/Download.aspx?File=DirectX-Labirint.exe.zip

با VB.Net2005 و DirctX7 درست شده! ساخت من نیست (فایل ReadMe ناشر اصلی را همراه دارد، از دزدیدن ثمره کار دیگران متنفر هستنم!) من فقط با اجازه ناشر کمی سورسش را دستکاری کرده ام.

__H2__
یک شنبه 16 اردیبهشت 1386, 16:47 عصر
سلام مجدد
گمان میکنم بحث زیادی قدیم شده باشد و من هم اگر بخواهم آن بازی را تهیه بیشتر طول میکشد.
در نتیجه چند نمونه بازی که با VB6 درست شده میگذارم تا حسن ختام بحث باشد. (چون نیمچه قولی داده بودم!) بر کسی در پیتی VB6 پوشیده نیست! اگر میشود با VB6 اینها را درست کرد بدون شک میشود با VB8 و همزادش #C نیز این کار را کرد، سورس های زیاد و جالبی در DirectX SDK وجود دارد ولی حجمی 400 مگابایتی دارد که دانلود آن را برای عموم سخت میکند.

چیزی شبیه قارچخور:
http://www.h-two.info/Download.aspx?File=DirectXGame-Platform.exe.zip

یک بازی استراژیک ساده (در حد ژنرال یا همان جنرال!!!!!) :
http://www.h-two.info/Download.aspx?File=DirectXGame-RobotsWar.exe.zip

میبخشید، بای!