مهندس موفق الکترونیک

تفاوت بین C و ++C

در این جلسه تفاوت بین C و ++C را بررسی می‌کنیم. درک تفاوت‌های C و ++C خیلی مهم است و هنوز خیلی از افراد هستن که در ++C به سبک C کد می‌نویسند و از امکانات پیشرفته زبان ++C استفاده نمی‌کنند. پس برای برنامه‌نویس حرفه‌ای شدن درک صحیح تفاوت بین C و ++C خیلی مهم است. هر دو زبان قدرتمندی هستن و برای درک قدرت زبان C کافیست بدانید هسته سیستم عامل‌های ویندوز و لینوکس با C نوشته شده است. و اکثر برنامه‌های قدرت‌مند مثل Mozilla Firefox با ++C نوشته شدن.

تفاوت بین C و ++C

زبان برنامه نویسی C چیست؟

C یک زبان برنامه نویسی سطح میانه است که توسط دنیس ریتچی در آزمایشگاه بل در سال 1972 ابداع شد. زبان C ویژگی های زبان های سطح پایین و سطح بالا را ترکیب می کند. به همین دلیل به عنوان زبان سطح میانی شناخته می شود.

C از لحاظ سنتی یک زبان برنامه نویسی سطح بالا محسوب می شود که امکان توسعه میان افزارها و برنامه های قابل حمل را فراهم می کند.زبان C با هدف نوشتن نرم افزارهای سیستمی توسعه یافت. این زبان یک زبان ایده آل برای نوشتن میان افزار سیستم ها می باشد.

زبان برنامه نویسی ++C چیست؟

++C یک زبان برنامه نویسی کامپیوتری است که ویژگی های زبان C و همچنین Simula67(اولین زبان شی گرایی) را دارا می باشد. ++C مفاهیم کلاس و شی را معرفی کرد.

این زبان ویژگی های زبان های سطح بالا و پایین را پوشش می دهد. بنابراین یک زبان سطح میانی محسوب می شود. در گذشته “C همراه با کلاس” نامیده می شد زیرا همه خصوصیات زبان C را دارا بود.

تفاوت بین C و ++C : تفاوت های بنیادی

تفاوت بین C و ++C

مبانی اختلاف

C

C++

نوع برنامه نویسی یک زبان برنامه نویسی رویه محور است زبان برنامه نویسی شی گرا است.
دیدگاه زبان C دیدگاه برنامه نویسی بالا به پایین را دنبال می کند. زبان ++C دیدگاه برنامه نویسی پایین به بالا را دنبال می کند.
پسوند فایل پسوند فایل در برنامه C به صورت .c است. پسوند فایل در برنامه ++C به صورت .cpp است.
تقسیم بندی برنامه در زبان برنامه نویسی C، یک برنامه بزرگ به بخش های کوچکتری تقسیم شده که تابع نام دارند. در زبان برنامه نویسی ++C، یک برنامه بزرگ به بخش های کوچکتری تقسیم شده که کلاس و شی نامیده می شوند.
ساختار ساختار در زبان C ویژگی اعلان تابع را فراهم نمی کند. ساختار در زبان ++C ویژگی اعلان تابع را به عنوان تابعی عضو از ساختار فراهم می کند.
توابع درون خطی توابع درون خطی را پشتیبانی نمی کند. توابع درون خطی را پشتیبانی می کند.
عملیات استاندارد I/O در زبان C توابع scanf و printf برای ورودی و خروجی استاندارد استفاده می شوند. در زبان C++، cin>> و cout<< برای عملیات استاندارد ورودی و خروجی بکار می روند.
امنیت داده در زبان C امنیت داده وجود ندارد. داده امن بوده و از طریق توابع خارجی قابل دسترسی نیست.(با استفاده از ویژگی محصورسازی OOP ها)
سادگی کدنویسی زبان C زبان برنامه نویسی قدیمی تری است که به عنوان یک زبان دستی توصیف می شود. در این زبان، باید به برنامه انجام هرچیزی را دستور دهید . علاوه برآن، این زبان به شما اجازه انجام تقریباً هرکاری را می دهد. ++C زبانی تعمیم یافته از C است. این زبان امکان نوشتن کد شی گرایی با قابلیت کنترل بالا را فراهم می کند.
سازگاری با دیگر زبانها C با زبان های دیگر سازگار نیست. زبان ++C با زبان های عمومی دیگر سازگار است.
اشاره گر C از اشاره گرها پشتیبانی می کند. C از اشاره گر و ارجاعات(رفرنس) پشتیبانی می کند.
متغیر در C، متغیرها باید در ابتدای برنامه تعریف شوند. ++C اجازه اعلان متیغرها در هرجایی از توابع را فراهم می کند.
نقطه تمرکز تمرکز زبان C روی گام ها یا رویه های حل مسئله است. زبان ++C روی اشیا و نه گامها یا رویه ها تمرکز دارد. این زبان سطح بالاتری از چکیده سازی دارد.
اضافه بار تابع زبان C استفاده از اضافه بار تابع(function overloading) را فراهم نکرده است. زبان ++C استفاده از اضافه بار تابع(function overloading) را فراهم کرده است.
نوع داده زبان C اجازه اعلان نوع داده رشته ای یا بولی(Boolean) را نمی دهد. این زبان نوع داده های پایه داخلی را پشتیبانی می کند. زبانی ++C نوع داده رشته ای و بولی را فرهم می کند.
رسیدگی به استثناها(Exception Handling) زبان C رسیدگی به استثناها را فراهم نمی کند.هرچند می توان با استفاده از برخی راه حلها آن را پیاده سازی کرد. ++C رسدیگی به استثاها را پشتیبانی می کند. علاوه بر آن، می توان آن را با بلوک های try و catch هم پیاده کرد.
توابع توابع با آرایش پیش فرض را پشتیبانی نمی کند. توابع با آرایش پیش فرض را پشتیبانی نمی کند.
فضای نام چنین چیزی در زبان C وجود ندارد. زبان ++C چنین ویژگی را دارا می باشد.
سورس کد برنامه با سورس کد فرمت آزاد از زبان برنامه نویسی C نشات گرفته است.
ارتباط C زیرمجموعه ای از ++C است. نمی تواند کدهای ++C را اجرا کند. ++C زبرمجموعه C است. ++C توانایی اجرای اکثر کدهای C را دارد اما C چنین توانایی ندارد.
محوریت زبان تابعمحور است زبان شیمحور است.
تمرکز بجای تمرکز بر داده ،روی روش یا رویه تمرکز دارد. بجای تمرکز بر روش یا رویه روی داده تمرکز دارد.
محصورسازی (Encapsulation) از محصورسازی پشتیبانی نمی کند.زیرا داده ها و توابع جدا بوده و موجودیت های آزادی هستند. از محصورسازی پشتیبانی می کند و داده ها و توابع به عنوان یک شی محصورسازی می شوند.
مخفی سازی اطلاعات زبان C مخفی سازی اطلاعات را پشتیبانی نمی کند. در این زبان، داده ها موجودیت های آزادی بوده که می توان خارج از کد تغییر داد. محصورسازی داده را مخفی می کند. به طوری که ساختارداده ها و عملگرها بر هدفمند استفاده می شوند.
مدریریت حافظه C توابع () mallocو ()calloc را رای تخصیص پویای حافظه فراهم کرده است. ++C یک عملگر جدید را به این منظور فراهم کرده است.
نوع داده ها از نوع داده های داخلی پشتیبانی می کند. از نوع داده های داخلی و تعریف شده توسط کاربر پشتیبانی نمی کند.
متغیرهای سراسری اجازه اعلان چندین متغیر سراسری را فراهم می سازد. اجازه اعلان چندین متغیر سراسری را فراهم نمی کند.
مفهوم نگاشت نگاشت بین داده و تابع بسیار پیچیده است. نگاشت بین داده و تابع را می توان به راحتی با استفاده از کلاس و شیایجاد کرد.
وراثت زبان C از وراثت پشتیبانی نمی کند. وراثت در زبان ++C قابل حصول است.
هدرفایل پیش فرض زبان C از stdio.h استفاده می کند. C++ از iosteam.h به عنوان هدرفایل پیش فرض استفاده می کند.
تابع مجازی مفهوم تابع مجازی در C وجود ندارد. مفهوم تابع مجازی در ++C وجود دارد.
کلیدواژه 32کلیدواژه دارد. 52کلیدواژه دارد.
چندریختی(Polumorphism) در زبان C چندریختی امکان پذیر نیست در زبان ++C چندریختی کاربرد دارد. چندریختی یکی از مهم ترین مفاهیم شی گرایی است.
برنامه نویسی گرافیکی زبان C ابزار GTK را برای برنامه نویسی گرافیکی فراهم آورده است. ++C ابزار Qt را برای برنامه نویسی گرافیکی فراهم کرده است.
مطلب پیشنهادی:  اشاره گر ها در زبان C همراه با مثال

تفاوت های بنیادی بین C و ++C

  • C یک زبان رویه محور است، حال آنکه ++C یک زبان شی گرایی است.
  • زبان C تنها از اشاره گرها پشتیبانی می کند حال آنکه ++C از اشاره گرها و ارجاعات(رفرانس ها) پشتیبانی می کند.
  • C امکان استفاده از اضافه بار تابعی را فراهم نمی کند حال آنکه ++C این امکان را فراهم می کند.
  • زبان C از نوع داده های داخلی پشتیبانی می کند درحالی که ++C از نوع داده های تعریف شده توسط کاربر نیز پشتیبانی می کند.
  • زبان C دیدگاه بالا به پایین در برنامه نویسی را دنبال می کند اما زبان ++C دیدگاه پایین به بالا را دنبال می کند.
  • توابع scanf و printf را برای ورودی و خروجی استفاده بکار می بندد اما در C++، cin و out برای عملیات استاندارد ورودی و خروجی تهیه شده اند.

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

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *