++C یک زبان برنامه نویسی سطح میانی است که توسط Bjarne Stroustrup در سال 1979 در آزمایشگاه بل توسعه یافت. ++C روی پلتفرم های متنوعی همچون ویندوز، Mac OS و نسخه های مختلف یونیکس(لینوکس، FreeBSD و غیره) قابل اجرا است. این آموزش دیدگاهی ساده و عملگرایانه برای توضیح مفاهیم ++C برای مهندسین نرم افزار از مبتدی تا پیشرفته درپیش می گیرد.
چرا باید برنامه نویسی ++C بیاموزیم؟
++C یک باید برای دانشجویان و کارمندان حرفه ای است که می خواهند مهندس نرم افزاری چیره دست شوند. برخی از مزایای کلیدی که با آموختن ++C کسب می کنیم را در زیر لیست کرده ایم:
- برنامه نویسی ++C بینش روشنی از برنامه نویسی شی گرا بدست می دهد. با پیاده سازی جداول مجازی(virtual table) و اشاره گرهای جدول مجازی(virtual table pointer) یا شناسایی نوع پویا(dynamic type identification)، پیاده سازی سطح پایین چندریختی(polymorphism) را خواهید آموخت.
- ++C بخشی از هر زبان برنامه نویسی نوظهور و مورد علاقه میلیونها توسعه دهنده نرم افزار است. اگر شما برنامه نویس ++C قابلی باشید هرگز بیکار نخواهید ماند و مهم تر از آن بابت کارتان درآمد زیادی به شما پرداخت خواهند کرد.
- ++C پرکاربردترین زبان برنامه نویسی در حوزه اپلیکیشن و برنامه نویسی سیستمی است. بنابراین شما می توانید حوزه مورد علاقه توسعه نرم افزاری خود را انتخاب کنید.
- ++C واقعاً تفاوتهای بین کامپایلر، لینکر(Linker) و لودر(loader)، نوع داده های مختلف، کلاس های ذخیره سازی، انواع متغیر و دامنه آنها و … را به شما آموزش می دهد.
هزاران دلیل خوب برای یادگیری ++C وجود دارد، اما قطعاً، برای یادگیری هر زبانی و نه فقط ++C، شما باید کد بزنید، کد بزنید و در نهایت کد بزنید تا خبره شوید.
برنامه Hello World با استفاده از ++C
تنها جهت جذاب تر کردن این مقاله، می خواهم یک برنامه سنتی و کوچک Hello World را ارائه دهم. می توانید با استفاده از لینک آزمایشی آن را امتحان کنید.
++C ابرمجموعه زبان C با افزودن مفاهیم شی گرایی می باشد.
#include<iostream> usingnamespace std; int main(){ cout <<"Hello World"; return0; }
کامپایلرهای بسیاری برای ++C موجود بوده و شما می توانید با انتخاب یکی از آنها برنامه زیر را اجرا کنید:
Apple C++. Xcode Bloodshed Dev-C++ Clang C++ Cygwin (GNU C++) Mentor Graphics MINGW - "Minimalist GNU for Windows" GNU CC source IBM C++ Intel C++ Microsoft Visual C++ Oracle C++ HP C++
دادن یک لیست کامل از کامپایلرهای موجود ++C واقعاً امری محال است. دنیای ++C بسیار عظیم است و اتفاقات جدید بسیاری در در آن در حال رخ دادن است.
کاربردهای برنامه نویسی ++C
همانطور که قبلاً گفتیم، ++C یکی از پرکاربردترین زبان های برنامه نویسی است.حضور این زبان در تقریباً همه حوزه های توسعه نرم افزار احساس می شود. می خواهم لیست کوچکی از آن ها را ارائه کنم:
- توسعه نرم افزارهای کاربردی – برنامه نویسی ++C در توسعه همه سیستم عامل های اصلی از جمله ویندوز، Mac OSX و لینوکس بکار رفته است. جدای از سیستم عامل ها، هسته اصلی بسیاری از مرورگرها مانند موزیلا فایرفاکس و کروم با استفاده از ++C نوشته شده است. ++C در توسعه محبوب ترین سیستم پایگاه داده یعنی MySQL بکار رفته است.
- توسعه زبان های برنامه نویسی – ++C به طور گسترده در توسعه زبان های برنامه نویسی جدید مانند C#، Java، JavaScript، Perl، UNIX C Shell و پایتون و Verilog و … استفاده شده است.
- برنامه نویسی محاسباتی – بخاطر سرعت بالا و بازدهی محاسباتی، ++C دوست خوب دانشمندان می باشد.
- توسعه بازی های کامپیوتری – ++C فوق العاده سریع بوده و به همین دلیل به برنامه نویسان امکان می دهد که برنامه نویسی رویه محور(procedural programming) را برای توابعی که از CPU به شدت کار می کشند انجام دهد و کنترل فوق العاده ای روی سختف افزار فراهم می کند، به همین دلایل است که ++C در موتورهای بازی بسیاری بکار گرفته شده است.
- سیستم های نهفته یا Embedded System زبان ++C در توسعه نرم افزارهای پزشکی و مهندسی بی شماری مانند نرم افزارهای ماشین MRI، سیستم های CAD/CAM high-end و … استفاده شده است.
اگر علاقمند بودید فیلم زیر را ببیید. نرم افزارهای مشهوری که با ++C نوشته شدن را در این فیلم تشریح میکنه.
این لیست کماکان ادامه دارد، اینها حوزه های متنوعی هستند که توسعه دهندگان نرم افزار با افتخار از ++C برای ایجاد نرم افزارهای ارزشمند استفاده کرده اند. من به شدت توصیه می کنم که زبان ++C را آموخته و به انجمن این نرم افزارهای بزرگ بپیوندید.
مروری بر ++C
++C زبانی است همه منظوره، با تعیین نوع و کامپایل ایستا (statically typed)، حساس به حروف کوچک و بزرگ، با شکل آزاد(free-form) که از برنامه نویسی رویه محور، شی گرا و ژنریک(generic) پشتیبانی می کند.
زبان ++C یک زبان سطح میانی محسوب می شود، زیرا ترکیبی از ویژگی های زبان های سطح بالا و سطح پایین را دارا می باشد.
++C به عنوان زبان بهبودیافته ای از C، توسط Bjarne Stroustrup در سال 1979 در آزمایشگاه بل در مورای هیل نیوجرسی توسعه یافت. در ابتدا با عنوان C همراه با کلاس نام گذاری شد اما سپس در سال 1983 به ++C تغییرنام یافت.
++C ابرمجموعه ای از زبان C است، و هر برنامه مجاز C برنامه ای مجاز از ++C نیز به حساب می آید. در ادامه توصیه میکنم مقاله تفاوت بین C و ++C را نیز مطالعه کنید.
نکته – گفته می شود که یک زبان برنامه نویسی به صورت ایستا طبقه بندی انواع را انجام می دهد، زمانی که عمل بررسی انواع(type checking) در زمان کامپایل برنامه(و نه در زمان اجرا) انجام گیرد.
برنامه نویسی شی گرا در ++C
++C برنامه نویسی شی گرا را به طور کامل پشتیبانی می کند،در واقع چهار رکن اساسی توسعه شی گرا را پیادهسازی می کند:
- محصورسازی(Encapsulation)
- مخفی سازی داده(Data Hiding)
- وراثت(Inheritance)
- چندریختی(Polymorphism)
کتابخانه های استاندارد
زبان ++C استاندارد شامل سه بخش مهم است:
- هسته زبان ، همه اجزای اصلی شامل متغیرها، انواع داده و واژگان اصلی و … را در بردارد.
- کتابخانه های استاندارد ++C مجموعه ای غنی از توابع برای دستکاری فایلها، رشته ها و … را فراهم می کند.
- کتابخانه الگوی استاندارد(STL) مجموعه ای غنی از متدها برای دستکاری ساختار داده ها و … را فراهم می کند.
استاندارد ANSI
استاندارد ANSI تلاشی است در جهت اطمینان از قابل حمل بودن ++C ؛ بدین معنی که کدی که شما برای کامپایلر مایکروسافت خواهید نوشت، بدون هیچ خطایی توسط کامپایلر مک یا یونیکس کامپایل شود.
آموختن ++C
مهم ترین چیز هنگام آموختن ++C تمرکز بر روی مفاهیم است.
هدف از یادگیری یک زبان برنامه نویسی این است که به برنامه نویس بهتری تبدیل شویم؛ یعنی، در طراحی و پیاده سازی سیستم های جدید و نگهداری از سیستم های پیشین بهینه تر عمل کنیم.
++C استایل های متنوع برنامه نویسی را پشتیبانی می کند. می توانید برنامه تان را با استایل فرترن fortran، C ، Small Talk و … در هر زبانی بنویسید. هر استایلی با حفظ کارایی حافظه و نگه داری حین اجرا، می تواند به هدف خود دست یابد.
پیش نیازهای یادگیری برنامه نویسی ++C
آموزش برنامه نویسی ++C برای مبتدیان تهیه شده تا مفاهیم اولیه تا پیشرفته ++C را درک کنند. پیش از شروع به تمرینات و مثال های متنوع این آموزش، ما فرض می کنیم که شما با مفاهیم اولیه برنامه های کامپیوتری و زبان های برنامه نویسی کامپیوتری آشنا هستید. و همچنین توصیه میکنیم دوره رایگان آموزش زبان C را هم مرور کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.