تفاوت های c و c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تفاوت های c و c++

+4 امتیاز
سلام 2 زبان c و c++ چه فرقی با هم دارن ؟

هر کدوم چه جا هایی بیشتر استفاده میشن ؟
سوال شده بهمن 9, 1392  بوسیله ی RED (امتیاز 494)   9 30 41

3 پاسخ

+1 امتیاز

++C همان C هست منتها از شی گرایی هم بهره میبرد(و یه سری تفاوت های دیگه مثل استفاده از string و new و...). برنامه نویس های کمی هستند که از کل ++C استفاده کنن. یعنی اغلب کسانی که با C برنامه مینویسند، به ++C به چشم یک ابزار برای شی گرا کردن برنامه هاشون بهره میبرن.

پاسخ داده شده فروردین 26, 1393 بوسیله ی MaGaroos (امتیاز 658)   11 18 36
استادمون میگفت توی ++c رشته وجود نداره!!! چطوریه توی نسخه های جدیدش قرار دادن؟
من که استفاده میکنم. باید اول برنامه، فایل هدر string رو include کنیم
بعد توی main قبل از اسم متغیر مینویسیم string
البته با ++g توی کدبلاکس تست کردم
نمیدونم توی turbo ++C هم جواب میده یا خیر
–1 امتیاز
فرق اصلی سی با سی پلاس اینه که با سی میتوان روی سخت افزار هم برنامه نوشت این به این معنی نیست که با سی پلاس به هیچ عنوان نمیتوان نوشت
پاسخ داده شده فروردین 27, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
+4 امتیاز

++C تقریبا همه ی ویژگی های C 95 رو داره به همراه یکسری چیزای اضافه که اصلی ترینشون تفاوت روش های کد نویسی C با ++C هستش

 

با C میشه به سبک  procedural programming کد نوشت

ولی با ++C از هر ۳ روش زیر میشه استفاده کرد :‌

 

Object oriented programming (شی گرایی ) oop  :  منظور اینه که شما هر چیز رو به شکل یک شی در نظر می گیرین  و سعی می کنین اجزای کد خودتونو به شکل یک شی و یک مدل از دنیای واقعی در بیارین.... مزایایی هم که داره قابلیت استفاده مجدد کد و خوانایی و قابلیت گسترش هستش

.

Generic programming : به روشی از برنامه نویسی میگن که شما یک الگوریتم مینویسی و زمانی که استفاده شد بر اساس ورودی پارامتر هاش عوض میشن مثلا یک برنامه نوشتین که max دو تا عدد رو حساب می کنه این جا با استفاده از template هر بار که max صدا زده میشه یک تابع max جدید بر اساس ورودی هاش خودکار زمان کامپایل کد ساخته میشه.

template<T>
int max(T a,T b)
{
     return (a>b) ? a : b;
}

    max<double>(5.4,1.43);
    max<string>("ab","abc");
    //...

مزیتی که این روش نسبت به oop داره اینه که توابع زمان کامپایل کد ساخته میشن و کد زمان اجرا سرعت بیشتری داره . ولی مشکلی که داره اینه که یکم زمان کامپایل بیشتر میشه .

 

Procedural programming  یا برنامه نویسی رویه ای : به این شکل هستش که ما هدفی که از برنامه داریم رو به صورت یک سری دستور العمل ها و متغیر های کوچکتر تقسیم می کنیم و با ترکیب و استفاده از این دستور العمل ها به هدفمون میرسیم تفاوتی که با oop داره اینه که توی شی گرایی سعی میشه که برنامه رو به شکل شی شامل یک رابط خارجی در بیاریم ولی با این روش سعی میشه که برنامه رو به مجموعه های کوچیکتری از دستور العمل ها متغیر ها و ... تقسیم کنیم.

 

(البته با C هم میشه کارایی کرد که هم بصورت oop کد نوشت هم generic ولی هیچ کدوم روش های جالبی نیستن ! )

 

از یکسری موارد دیگه مثل operator overloading ,namespace,lambda,... هم داخل ++C میشه استفاده کرد که توی C وجود ندارن .

 

از نظر سرعت  هم که کد هایی که با C نوشته میشن احتمالا چند درصدی از کد ++C هم سریع تر اجرا و هم سریع تر کامپایل میشن (بستگی به کد هم داره البته ).

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