علیرغم زبانهای برنامهنویسی متعدد و گوناگونی که در حال حاضر با آنها رو به رو هستیم، برخی شهرت بیشتری دارند و نام آنها در میان بهترین زبانهای برنامهنویسی، مشاهده میشود. زبان برنامه نویسی سی پلاس پلاس نیز یکی از این همین موارد بهشمار میرود. C++ جزو زبانهای کامپایلری است که در نیمه دهه ۸۰ میلادی با هدف گسترش قابلیتهای زبان قدرتمند و شناخته شده C، همچون قابلیت شیگرایی و غیره توسط آقای «بیارنه استراس تروپ» (Bjarne Stroustrup) ساخته شد. در این مطلب از مجله فرادرس، قصد داریم تا C++ را به زبان ساده به شما معرفی کنیم و هر آنچه که میبایست درباره آن بدانید را بگوییم.
در این نوشتار، نخست به شما میگوییم که زبان برنامه نویسی سی پلاس پلاس چیست. منابع مناسبی را برای یادگیری این زبان معرفی میکنیم. ویژگیها C++ را بر میشماریم. میگوییم که در چه حوزههایی مورد استفاده قرار میگیرد. با سینتکس این زبان قدرتمند آشنا میشویم و نحوه نوشتن یک برنامه ساده را با هم مرور میکنیم. سپس، شی گرایی را نیز در زبان برنامه نویسی سی پلاس پلاس توضیح میدهیم. در انتها نیز منابعی را برای تقویت مهارت برنامهنویسی با C++ بیان خواهیم کرد. این زبان همهمنظوره، کاربردهای گستردهای دارد و بهطور عمده برای ساخت اپلیکیشنها گوناگونی مانند مرورگرها، سیستم عاملها، موتورهای جست و جو، بازیها، اپلیکیشنهای واقعیت مجازی و غیره مورد استفاده قرار میگیرد. زبان برنامه نویسی سی پلاس پلاس همچنین جزو زبانهایی است که در مراکز دانشگاهی تدریس میشوند و خیلی از افراد، مفاهیم برنامهنویسی شیگرا را با آن میآموزند.
زبان برنامه نویسی سی پلاس پلاس چیست؟
زبان برنامه نویسی سی پلاس پلاس، یکی از زبانهای خانواده C محسوب شده و قابلیتهای بسیاری زیادی از جمله شیگرایی را برای توسعهدهنده خود بههمراه دارد. C++ بهطور معمول برای ساخت انواع گوناگونی از نرمافزارها از جمله سیستم عاملها، موتورهای بازی، مرورگرها، برنامههای کامپیوتری و غیره مورد استفاده قرار میگیرد.
با در نظر گرفتن قابلیتهایی که زبان برنامه نویسی سی پلاس پلاس برای توسعه اپلیکیشن در اختیار برنامهنویس قرار میدهد، میتوان آن را زبان بسیار مناسبی برای توسعه اپلیکیشنهایی دانست که خصوصیات زیر را دارند.
- سرعت اجرای بالایی دارند.
- منابع سختافزاری دستگاهی که روی آن اجرا میشوند را بهشکل بهینهای مدیریت میکنند.
- در اجرای وظایف مهم میتوان به آنها اعتماد کرد به این دلیل که پایداری مناسبی از خود نشان میدهند.
طراحی و ساخت زبان برنامه نویسی سی پلاس پلاس، به سال ۱۹۷۹ میلادی باز میگردد. C++ در آن زمان، توسط آقای «Stroustrup» و همکارانش در آزمایشگاههای بل، طراحی و ساخته شد. این زبان را میتوان نسخهای بهروز شده از زبان C دانست که به دنبال رفع برخی محدودیتهای آن ایجاد شد. این زبان همهمنظوره، قابلیتهایی مانند آنچه در ادامه آوردهایم را بههمراه دارد.
- برنامهنویسی شیگرا
- خصوصیت فضای نام یا «namespace»
- مدیریت خطاها
- سربارگذاری عملگرها
- و غیره
در زبان برنامهنویسی C++ تا حد زیادی میتوانید به سختافزار سیستم مورد نظر بهطور مستقیم دسترسی داشته باشید. این مزیت باعث میشود تا بتوانید کدهای خود را به نحوی توسعه دهید که حتی در دستگاههایی با منابع سختافزاری محدود – به لحاظ انرژی یا فضا – هم به بهترین شکل کار کنند. بهطور خلاصه میتوانیم بگوییم که با زبان برنامه نویسی سی پلاس پلاس، میتوانید برنامههای پرسرعتی را توسعه دهید که قابلیت اجرا در دستگاههای مختلفی را دارند.
یادگیری زبان برنامه نویسی سی پلاس پلاس با فرادرس چگونه است؟
بر کسی پوشیده نیست که علاقه، تمرین و پشتکار جزو عوامل مهم در یادگیری مهارت برنامهنویسی و توسعه اپلیکیشنهای گوناگون با زبان برنامه نویسی سی پلاس پلاس محسوب میشوند. اما، انتخاب منبع مناسب برای یادگیری نیز مؤلفه بسیار تأثیرگذاری است که میتواند حرکت شما را در فرایند یادگیری برنامهنویسی تسریع کند و به کمک آن مسیر یادگیری این مهارت را بهصورت بهینه طی کنید. در حال حاضر، با طیف وسیعی از منابع گوناگون برای یادگیری زبان برنامه نویسی سی پلاس پلاس رو به رو هستیم که هر یک، مزایا و معایب خاص خود را دارند. بهطور مثال، میتوانید ویدیوهای آموزشی آنلاین از پلتفرمهای معروفی همچون یوتیوب را مشاهده کنید یا اینکه کتب گوناگون و سایر منابع متنی را بهطور خودآموز بهکار ببرید. همچنین، شرکت در کلاسهای حضوری، گزینه دیگری است که با صرف هزینه زمان میتوانند به شما در این راه کمک کنند.
در این میان، یادگیری از طریق مشاهده فیلمهای آموزشی، یکی از بهترین روشهای کسب مهارت برنامهنویسی C++ بهشمار میرود که به شما کمک میکند تا این دانش ارزشمند را فارغ از موقعیت مکانی که در آن قرار دارید، بیاموزید. ضمن اینکه در صورت نیاز میتوانید بارها و بارها مفاهیم گفته شده را مرور و تمرین کنید. یکی از این موارد، مجموعه فیلمهای آموزش مقدماتی تا پیشرفته برنامه نویسی سی پلاس پلاس ++C از فرادرس است که در ادامه مشاهده میکنید.
در ادامه، عناوین برخی از فیلمهای آموزش موجود در این مجموعه را فهرست کردهایم که C++ را از مقدماتی تا پیشرفته به شما یاد میدهند.
در صورتیکه قصد یادگیری ساختمان داده در زبان برنامه نویسی سی پلاس پلاس را داشته باشید. مشاهده فیلمهای آموزشی زیر به شما توصیه میشود.
ویژگی های زبان برنامه نویسی سی پلاس پلاس چیست؟
زبان برنامهنویسی C++، خصوصیات برجستهای بههمراه دارد که در ادامه به آنها اشاره کردهایم.
برنامه نویسی شی گرا
همانطور که میدانید زبان C یک زبان رویهای است، اما C++ بر خلاف آن، از کلاسها و بهطور کلی مفاهیم شیگرایی پشتیبانی میکند. یعنی اینکه شما بهجای توابع، برنامه خود را با استفاده از مفهوم اشیا و دادهها توسعه میدهید. این مورد را نیز در ادامه این نوشتار، بیشتر توضیح دادهایم.
برنامه نویسی سطح میانی
زبان سی پلاس پلاس را به عنوان یک زبان «سطح میانی» (Mid-Level) میشناسند. به این دلیل که به کمک آن میتوان افزون بر برنامههای سیستمی و سطح پایین، برنامههای سطح بالا را نیز توسعه داد. همچنین بهدلیل اینکه سینتکس C++ شامل کلمات انگلیسی – و به راحتی قابل فهم توسط انسانها – است، میتوان آن را زبانی سطح بالا دانست.
اشاره گرها در زبان سی پلاس پلاس
یکی از مؤلفههای موجود در سی پلاس پلاس، مفهوم پوینتر یا اشارهگر است. پوینتر به زبان ساده، متغیری است که آدرس متغیر دیگری را نگه میدارد. این خصوصیت میتواند برنامهنویس را در تخصیص حافظه بهصورت بهینه، یاری دهد.
تخصیص حافظه داینامیک
ممکن است که شما به عنوان توسعهدهنده از مقدار حافظه مورد نیاز برنامه خود پیش از زمان اجرای آن آگاه نباشید. در اینگونه مواقع قابلیت تخصیص حافظه بهصورت پویا، به کمک شما میآید. بهطور دقیقتر اگر بخواهیم بگوییم، زبان برنامهنویسی C++ با استفاده از مفهوم اشارهگرها این امکان را فراهم میکند تا حافظه بهصورت پویا و در زمان اجرای برنامه، اختصاص داده شده و مورد استفاده قرار گیرد.
مستقل بودن از ماشین
سی پلاس پلاس، «وابسته به پلتفرم» و «مستقل از ماشین» است. یعنی، برنامههای نوشته شده به این زبان را بهطور مثال اگر روی ویندوز کامپایل کنیم، دیگر روی لینوکس اجرا نمیشود. اما، میتوان آن را روی کامپیوترهای ویندوزی دیگر نیز اجرا کرد.
حساس به حروف بزرگ و کوچک
در زبانهایی مانند HTML و MySQL فرقی نمیکند که از حروف بزرگ برای نوشتن دستورات استفاده کنید یا حروف کوچک را بهکار ببرید. در هر صورت، دستورات شما به درستی اجرا میشوند. اما سی پلاس پلاس جزو زبانهای به اصطلاح Case-Sensitive است که بین بزرگ یا کوچک بودن حروف در کدنویسی، تفاوت قائل میشود. به بیان سادهتر ۲ کاراکتر a و A در کدنویسی به زبان C++، با هم فرق دارند. بههمین دلیل لازم است به این مورد توجه کافی داشته باشید تا از بروز خطاها پیشگیری شود.
کتابخانه های فراوان
کتابخانهها در زبانهای برنامهنویسی، کدهایی آمادهای هستند که بهکارگیری آنها توسعه برنامه را سرعت بخشیده و روند آن را سادهتر میکند. C++ کتابخانه سودمندی شامل توابع آماده متعدد و ارزشمند را در اختیار برنامهنویس قرار میدهد. در نتیجه آن، توسعه نرمافزار، مقرون به صرفهتر و سریعتر انجام میشود.
در صورتیکه قصد یادگیری کتابخانه C++ را دارید میتوانید فیلم آموزش کتابخانه قالب استاندارد STL در C++ برای سادهنویسی برنامهها از فرادرس را مشاهده کنید که در آن مفاهیمی همچون کانتینر، Iterator، الگوریتم، آرایه، بردار، صف ۲ طرف، لیست پیوندی، پشته، صف اولویت و بسیاری موارد دیگر را به شما یاد میدهد. لینک این فیلم آموزشی را در ادامه آوردهایم.
C++ همچنین فریمورکهای قدرتمندی مانند Qt را دارد که به کمک آن میتوانید رابط کاربری برنامههای سازگار با انواع پلتفرمها را توسعه دهید. فیلم آموزش فریم ورک کیوت Qt برای توسعه نرم افزارها با سی پلاس پلاس که لینک آن را در ادامه آوردهایم، Qt را به شما یاد میدهد و مفاهیم مختلفی نظیر انواع ویجتها، سیگنال و اسلات، مدیریت لایهها، کانتینرها، فایل، گرافیک، پایگاه داده، تِرِد و ام کیو ال را در بر میگیرد.
زبان کامپایلری
سی پلاس پلاس، زبانی کامپایلری است. به زبان ساده، یعنی برای اجرای برنامههایی که با C++ نوشته میشوند میبایست یک مرحلهای به نام Compile پشت سر گذاشته شود. درست بر خلاف زبانی نظیر روبی که تفسیری است و بهجای کامپایل، تفسیر میشود. زبانهای کامپایلری بهطور معمول دارای مزیتهایی همچون سرعت بیشتر، امنیت بهتر دادهها، بهینه و مستقل از ماشین هستند.
در یکی از مطالب پیشین مجله فرادرس، در مورد ++C توضیح دادیم که مطالعه آن نیز میتواند برای شما سودمند باشد و به دانش زبان برنامه نویسی سی پلاس پلاس شما بیفزاید.
کاربرد زبان برنامه نویسی سی پلاس پلاس چیست؟
زبان برنامه نویسی سی پلاس پلاس قابلیت توسعه اپلیکیشنهای متنوع و مورد استفاده در صنایع گوناگون را در اختیار ما قرار می دهد. در این قسمت برخی از کاربردهای مهم و جالب زبان C++ را معرفی کردهایم.
ساخت سیستم عامل
از برنامههای سیستمی همچون سیستم عاملها انتظار میرود تا منابع سیستم را با سرعت زیادی مدیریت کنند و در عین حال بهرهوری بالایی را نیز در این مورد از خود نشان دهند. بههمین دلایل، زبان برنامه نویسی سی پلاس پلاس یکی از بهترین گزینهها برای توسعه اینگونه نرمافزارها است. C++ بهدلیل امکاناتی که برای نوشتن برنامههای سطح پایین فراهم کرده، به برنامهنویس کمک میکند تا جزئیترین مولفههای نرمافزار را بهنحوی شکل دهد تا به لحاظ سرعت و همچنین مصرفی انرژی، عملکرد خوبی را از خود نشان دهند. اکنون میدانید که چرا زبان برنامه نویسی سی پلاس پلاس جزو زبانهای مورد استفاده در ساخت بسیاری از سیستم عاملهای معروف نظیر ویندوز، مک، iOS و غیره است و اینگونه پلتفرمها را در سیطره خود دارد.
بازی سازی
«توسعه بازی» (Game Development) یا بازیسازی یکی دیگر از کاربردهای معروف زبان برنامه نویسی سی پلاس پلاس است. بهطوری که میتوان C++ را جزو رایجترین زبانی دانست که برای پیادهسازی بازی انتخاب میشود. در ادامه، مواردی را بیان کردهایم که اهمیت و نقش C++ را در این حوزه نشان میدهند.
- بازیهای محبوبی مانند Counter-Strike، دنیای وارکرفت، StarCraft و غیره زبان سی پلاس پلاس را بهکار گرفتهاند.
- کنسولهای بازی معروفی نظیر ایکسباکس، پلیاستیشن و نینتندو سوییچ از C++ استفاده میکنند.
- موتورهای بازیسازی معروفی همچون Unreal Engine نیز از زبان برنامه نویسی سی پلاس پلاس بهره میبرند.
بازیها بهطور معمول مؤلفههای گوناگونی دارند که چه به لحاظ گرافیکی و چه امکانپذیر کردن قابلیت چند بازیکنه، بهشدت از منابع سیستم استفاده میکنند. در این مورد، C++ با قابلیتهایی که دارد نحوه استفاده از منابع را بهبود بخشیده و به برنامهنویسان کمک میکند تا مواردی مانند ساختار دادهها و کار با حافظه را بهطور کامل مدیریت کنند.
دستگاه های اینترنت اشیا
«سیستمهای نهفته» (Embedded Systems) مورد استفاده در دستگاههای IoT یا همان اینترنت اشیا بهطور معمول با زبان C++ برنامهنویسی میشوند. تلویزیونها، ساعتها مچی، لوازم خانگی هوشمند، وسایل پزشکی، خودروها و غیره جزو همین دستگاهها محسوب شده و در بر گیرنده سیستمهای نهفته هستند. این نوع سیستمها به دلیل ماهیت نهفته و «جاسازی شده» خود، بهطور معمول با منابع انرژی و پردازشی محدودتری رو به رو هستند. در این مورد، زبان C++ گزینه خوبی برای برنامهنویسی است به این دلیل بهکمک آن میتوان منابع مورد استفاده را بهشکل بهتری مدیریت کرد تا برنامهها با بهرهوری بیشتری اجرا شده و بهصورت بهینهتر کار کنند.
مروگرهای وب
زبان برنامهنویسی سی پلاس پلاس، جزو زبانهایی است که در ساخت مرورگرهای معروف کنونی نظیر گوگلکروم، اوپرا، سافاری، موزیلا فایرفاکس، که روزانه از آنها استفاده میکنیم، بهکار رفته است. C++ میتواند سرویسهای بکاندی را توسعه دهد که اطلاعاتی را از دیتابیس خوانده و کدها را به صفحات وب تبدیل میکند. با وجود C++، این فرایند با سرعت زیادی انجام شده و خیلی سریع، نتایج تولید شده را در مرورگر خود مشاهده میکنیم.
ابزارهای ماشین لرنینگ
در پشت برخی کتابخانهها و فریمورکهای قدرتمند ماشین لرنینگ نظیر تنسورفلو نیز نام زبان برنامه نویسی سی پلاس پلاس را میبینیم. با اینکه برنامهنویسان حوزه علم داده و هوش مصنوعی از زبان پایتون برای بهرهمندی از تنسورفلو استفاده میکنند اما باید بدانید که محاسبات مهم و پایهای یادگیری ماشین با کدهایی صورت میگیرد که با زبان C++ نوشته شدهاند. در واقع میتوان گفت که اینگونه محاسبات بهشدت پیچیده برای آموزش مدلهای یادگیری ماشین میتواند توسط کتابخانههای بسیار زیاد و قدرتمندی انجام شود که C++ برایمان فراهم کرده است.
پایگاه داده ها
به احتمال قوی، نام سیستمهای مدیریت پایگاه داده معروفی همچون اسکیوال سرور، MySQL یا MongoDB را تابهحال شنیدهاید. اکنون خوب است بدانید که برای ساخت این ابزارهای دیتابیس که در اپلیکیشنهای شرکتهای متعددی نظیر گوگل، نتفلیکس، ادوبی، یوتیوب و غیره بهکار میرود، از زبان برنامه نویسی سی پلاس پلاس استفاده شده است. در واقع C++، زبان برنامهنویسی خوبی برای ساخت پایگاه دادهها و ذخیرهسازی پربازده و کارآمد دادهها محسوب میشود.
اپلیکیشن های واقعیت مجازی و واقعیت افزوده
یکی دیگر از کاربردهای C++ را میتوان در تولید اپلیکیشنهای واقعیت افزوده و واقعیت مجازی یا بهاصطلاح «AR/VR» مشاهده کرد. همانطور که گفته شد موتورهای بازیسازی مانند Unreal Engine از زبان برنامه نویسی سی پلاس پلاس استفاده میکنند و بیشتر اپلیکیشنهای «AR/VR» نیز در این پلتفرم اجرا میشوند. این نوع برنامهها بهطور معمول با حجم بسیار زیادی از دادهها سر و کار دارند. منظور دادههایی است که بهطور پیوسته با توجه به ورودی سنسور دوربین و همچنین تعاملهای کاربر تغییر میکنند. C++ در پردازش این دادهها و ایجاد تجربه مجازی بینظیر بسیار خوب عمل میکند.
نرم افزارهای هوانوردی
یکی از جالبترین کاربردهای C++، استفاده از آن برای نوشتن برنامههای مربوط به سیستم هواپیماهای مسافربری و نظامی یا جنگی همچون هواپیماهای F-16 و F-35 است. زبان برنامه نویسی C++ برای توسعه اپلیکیشنهای هوانوردی و برنامههایی استفاده میشود که به لحاظ ایمنی بسیار مهم هستند. این زبان از استاندارهای برنامهنویسی بسیار سختگیرانهای استفاده میکند تا از عملکرد صحیح و قابل پیشبینی برخی اجزا همچون بالها، موتور و سایر مؤلفههای مهم هواپیما در هر پرواز مطمئن شود.
پژوهش های علمی
جایگاه زبان برنامه نویسی سی پلاس پلاس در پژوهشهای علمی گوناگون را نمیتوان نادیده گرفت. بهطوری که گستره آن، فیزیک ذرات پرانرژی تا اکتشاف فضایی را در بر میگیرد. مواردی که در ادامه آورده شده را در نظر داشته باشید.
- پژوهشگران مستقر در سازمان پژوهشهای هستهای اروپا، بهکمک زبان C++ در پی تحلیل ذرات زیراتمی هستند تا از این طریق، اطلاعات بیشتری در مورد نحوه پیدایش جهان هستی پیدا کنند.
- کاربرد دیگر این زبان را میتوان بهکارگیری آن توسط سازمان ناسا دانست. به این صورت که زبان برنامه نویسی سی پلاس پلاس را با هدف توسعه سیستمهای خودرانی بهکار میبرند که رباتهای مریخنورد را در موضوع مسیریابی و عبور از مکانهای ناشناخته یاری میدهد.
- از این مورد هم نباید غافل شد که در توسعه قسمتهای زیادی از ایستگاه فضایی بینالمللی هم از C++ کمک گرفته شده است.
ابزارهای مالی
C++ را میتوان یکی از زبانهای قدرتمندی دانست که در توسعه نرمافزارهای بانکی نیز مورد استفاده قرار میگیرد. این اپلیکیشنها که توسط موسسات اعتباری و بانکهای بسیار زیادی بهکار گرفته میشوند، میتوانند شامل نرمافزارهای بانکداری و انجام امور مرتبط با آن، معاملات و غیره باشند. زبان C++ بهدلیل قابلیتهای زیادی که دارد میتواند پاسخگوی بسیاری از نیازهای این حوزه باشد.
برنامههایی که به زبان برنامه نویسی سی پلاس پلاس مینویسید، ضمن اینکه میتوانند با سرعت بالایی اجرا شوند، عملکرد مطمئنی را نیز ارائه میدهند. به پشتوانه همین خصوصیات، C++ را میتوان انتخاب بسیار مناسبی برای پردازش حجم بسیار بالا و میلیونی تراکنشهای روزانه و همچنین امکانپذیر کردن حجم و تعداد بالایی از معاملات دانست.
موتور جست و جوی گوگل
خیلی از ما بهطور روزانه از موتور جست و جوی گوگل استفاده کرده و شاهد سرعت بالای آن هستیم. دلیل این خصوصیت را میتوان وجود زبان برنامهنویسی C++ در پشت صحنه آن دانست. به همین دلیل نتایج را خیلی سریع دریافت میکنیم. به لحاظ کیفیت نتایج جست و جویی که به ما نشان میشود نیز نقش این زبان در اجرای الگوریتمهای پیچیده و ماشین لرنینگ – در ارائه بهترین نتایج ممکن – را نمیتوان انکار کرد. همچنین خوب است بدانید که گوگل برای فرایند کرالینگ و ایندکسکردن نیز از سی پلاس پلاس بهره میبرد.
فناوری پزشکی
C++ در حوزههای درمانی و پزشکی نیز کاربردهای زیادی دارد. بهطور مثال، دستگاههای MRI که برای تصویربرداری پزشکی مورد استفاده قرار میگیرد، تجهیزات آزمایشگاهی، برنامههایی که اطلاعات بیماران را نگهداری و مدیریت میکنند و غیره جزو این موارد هستند. الگوریتمهای متعدد و پیشرفتهای در حوزههای پزشکی و زیستشناسی به زبان C++ نوشته شدهاند. بههمین دلیل، سیپلاسپلاس را برای مدل کردن و شبیهسازی دادها در پژوهشهای بیوانفورماتیک نیز بهکار میبرند.
مخابرات
کاربرد C++ در مخابرات را میتوان حاصل توانایی آن در مدیریت منابع، با هدف رسیدگی کردن به حجم فراوانی از ارتباطات همگام بهصورت سریع و کارآمد دانست. زبان برنامه نویسی سی پلاس پلاس، کاربرد زیادی در توسعه زیرساختهای مخابراتی نظیر سیستمهای تلفنی، اینترنت و غیره دارد.
فیلم سازی
صنعت تولید فیلم یکی از حوزههایی است که میتوان شاهد استفاده از تواناییهای زبان برنامه نویسی سی پلاس پلاس در آن بود. این زبان قابلیت اجرای پردازشهای سنگین و پیشرفته برای ایجاد جلوههای ویژه را ارائه میدهد. به بیان دیگر، باتوجه به اینکه C++ توانایی پردازش و کار با فایلهای حجیم و فیلمهای باکیفیت را دارد، میتواند برای ساخت جلوههای ویژه و صحنههای اینچنینی در فیمها نیز مورد استفاده قرار گیرد.
سینتکس زبان برنامه نویسی سی پلاس پلاس
هنگام توسعه یک برنامه با استفاده از زبانهای برنامهنویسی، طبق قوانین و قواعد از پیش تعیین شدهای عمل میکنیم و دستورات مختلفی را برای رسیدن به نتیجه مورد نظر مینویسیم. به این قوانین که بهنوعی قواعد دستور زبان برنامهنویسی محسوب میشوند، سینتکس یا نحو گفته میشود. هر زبان سینتکس خاص خود را دارد و ممکن است شباهتی بین سینتکس زبانهای گوناگون وجود داشته باشد.
سینتکس پایه یک برنامه در زبان برنامه نویسی سی پلاس پلاس
اکنون که با مفهوم سینتکس آشنا هستید. در ادامه، سینتکس و ساختار پایه یک نمونه برنامه نوشته شده با زبان C++ را به شما نشان میدهیم. کدهای زیر بیانگر همین مورد هستند.
1#include <iostream>
2using namespace std;
3int main() {
4 int num1 = 24;
5 int num2 = 34;
6 int result = num1 + num2;
7 cout << result << endl;
8 return 0;
9}
مثالی که در بالا آورده شده، ساختار یک نمونه برنامه C++ را نشان میدهد که بخشهای گوناگونی نظیر فایلهای Header، تابع Main، تعریف فضای نام و غیره را در بر میگیرد. در ادامه، هر کدام از این موارد را توضیح دادهایم.
فایل سرآمد
در خط شماره ۱، «فایل سرآمد» (Header File) را مشاهده میکنید. این نوع فایلها که بهطور معمول در ابتدای کدهای برنامه C++ تعریف میشوند، دستورات مربوط به توابع و ماکروهای مورد استفاده در برنامه را در بر میگیرند. در این خط، دستور #include <iostream> را نوشتهایم. هنگامیکه این برنامه را برای اجرا، کامپایل میکنیم، در این نقطه، فایل سرآمد کتابخانه iostream به برنامه اضافه میشود. دستورات ورودی و خروجی همچون cin و cout در همین iostreamفایل تعریف شدهاند. دستور #include نیز جزو دستورات پیشپردازنده محسوب میشود که برای افزودن فایلهای سرآمد به برنامه بهکار میروند. سینتکس کلی آن نیز بهشکل زیر است.
library_name در این دستور به نام کتابخانهای اشاره میکند که قصد افزودن یا وارد کردن آن به برنامه را دارید.
فضای نام
«فضای نام» (namespace ) در برنامههای C++ به زبان ساده، محدوده یا «Scope» تعریف شناسههایمان را مشخص میکند. بدینترتیب از بروز تداخل بین شناسههایی که ممکن است نام یکسان داشته باشند جلوگیری میشود. منظور از شناسه، نام توابع، متغیرها، کلاسها و غیره است.
همانطور که در خط شماره ۲ مثال بالا هم مشاهده میکنید، نوشتن دستور using namespace std; بیانگر این است که فضای نام std را بهکار بردهایم که در آن توابع کتابخانه استاندارد وجود دارند.
تابع Main
توابع را میتوان یکی از مؤلفههای موجود در زبانهای برنامهنویسی و جزو اجزای سازنده کدهای زبان C++ دانست که کدهای درون آن، با هدف انجام برخی کارهای مشخص، نوشته شدهاند. یک تابع در C++، دارای بدنهای از کدها است که عمل اصلی تابع را انجام میدهد. همچنین، پارامترهایی دارد که از طریق آن ورودیها را دریافت میکند. این توابع بهطور معمول، شامل نوعی که بر میگردانند یعنی Return Type هم میشوند.
در خط شماره ۳ از مثال، تابعی را بهصورت int main() تعریف کردهایم و خطوط بعدی آن یعنی خطوط شماره ۴ تا ۹ نیز که مابین { } قرار گرفتهاند جزو بدنه آن محسوب میشوند. همانطور که از نام آن نیز مشخص است، تابع main تابع اصلی برنامه ما است و هنگامیکه برنامه خود را اجرا میکنیم در واقع، کدهای این بخش اجرا میشوند. به بیان دیگر، این تابع را میتوان جزء اصلی برنامههایی دانست که با زبان برنامه نویسی سی پلاس پلاس مینویسیم. ممکن است که در برنامه خود، توابع دیگری هم داشته باشید اما باید بدانید که آن توابع نیز از درون تابع main فراخوانی میشوند.
عبارت return
یکی از مواردی که بهطور معمول در تابع mainبرنامه نوشته میشود، عبارت returnاست. با این کلمه کلیدی در واقع، وضعیت اجرای برنامه را تحت عنوان یک مقدار، بر میگردانیم. خط شماره ۸ بیان گر همین مورد است که مقدار صفر را بر میگرداند. بهطور کلی return کردن مقدار صفر به این معنی است که برنامه با موفقیت اجرا شده است.
بلوک ها
هنگامیکه دستورات و کدهایی را بین علامت} و { محصور میکنیم، به آن قطعه کد، یک بلوک گفته میشود. بهطور مثال در تعریف بدنه توابع یا عبارات شرطی از همین بلوک کدها استفاده میکنیم و بهواسطه آن محدوده شناسهها نیز مشخص میشود. خطوط شماره ۴ تا ۹ نیز بلوک کدها و بدنه تابع را نشان میدهند.
نقطه ویرگول
علامت ; که یکی از معروفترین علائم کدنویسی است را به اصطلاح «سِمیکالِن | Semicolons» میگویند و در کدنویسی به زبان برنامه نویسی سی پلاس پلاس بیانگر پایان یک دستور است. برنامه ما در حین اجرا، وقتی به این علامت میرسد، آن را به عنوان پایان دستور و رفتن به خط بعدی در نظر میگیرد.
شناسه ها
همانطور که میدانید هنگام کدنویسی یک برنامه به متغیرها، توابع، کلاسها و غیره نامی را اختصاص میدهیم. به این نامها، «شناسه» (Identifier) گفته میشود. شناسهها بهطور معمول شامل حروف کوچک و بزرگ الفبا، اعداد و زیرخط هستند. البته باید توجه داشت که این شناسهها با عدد شروع نمیشوند. خطوط شماره ۴ و ۵ از مثال بیان شده، همین مورد را نشان میدهند و num1 و num2 در واقع ۲ شناسهای هستند که برای نام متغیر استفاده شدهاند. نوع متغیرها نیز بهصورت عدد int تعیین شده است.
کلمات کلیدی
یکی از موارد دیگری که هنگام یادگیری زبانها برنامهنویسی با آن رو به رو میشوید کلمات کلیدی آن زبان هستند. این دسته از واژگان، مخصوص آن زبان برنامهنویسی هستند و برای کامپایلر آن زبان معنای خاصی دارند. بهطور مثال کلمه int که برای تعیین نوع داده بهکار میرود یکی از این کلمات کلیدی رزرو شده محسوب میشود و ما نمیتوانیم از این کلمات به عنوان یک شناسه استفاده کنیم.
در کدهای مثال ما واژههایی مانند int ،return و using کلمات کلیدی محسوب میشود که برای اهداف مشخصی رزرو شدهاند. بهطور کلی در زبان برنامه نویسی سی پلاس پلاس ۹۵ کلمه کلیدی داریم که برخی را در ادامه، بیان کردهایم.
int | for | while |
void | static | class |
bool | break | false |
char | case | auto |
if | this | new |
در ادامه، گفتهایم که این کلمات کلیدی برای چه منظوری رزرو شدهاند و بهطور خلاصه چه کاری انجام میدهند.
- int: نوع دادهای برای ذخیره اعداد صحیح است.
- for: این کلمه برای ایجاد یک حلقه for مورد استفاده قرار میگیرد.
- while: برای نوشتن حلقه while استفاده میشود.
- if: برای ایجاد دستورات شرطی بهکار میرود.
- void: این کلمه کلیدی میتواند بیانگر این مورد باشد که تابع مورد نظر مقداری را بر نمیگرداند.
- static: بیانگر این است که مقدار متغیر ما که درون تابع با این کلمه کلیدی تعریف شده است، پس از پایان اجرای تابع نیز تغییر نمیکند.
- class: برای تعریف یک کلاس در C++ از این کلمه کلیدی استفاده میکنیم.
- bool: این نوع داده میتواند مقادیر بولی true یا false را در خود نگه دارد.
- break: با کلمه کلیدی break میتوانیم از یک حلقه یا دستور سوییچ خارج شویم و برنامه را ادامه دهیم.
- false: مقدار boolean معادل 0 است. در شرطها، ناصحیح بودن عبارت را نشان میدهد.
- true: مقدار boolean معادل 1 است. در عبارات شرطی، بیانگر صحیح بودن عبارت است.
- char: این کلمه کلیدی در واقع نوع دادهای است که میتواند یک کاراکتر را در خود نگه دارد.
- case: بلوک کدهای موجود در دستور Switch را با این کلمه کلیدی بیان میکنیم.
- new: برای تخصیص حافظه داینامیک یا پویا از این کلمه کلیدی استفاده میشود.
و بسیاری کلمات کلیدی دیگر که برای اهداف گوناگونی مورد استفاده قرار میگیرند.
دستور خروجی cout
با توجه به کدهای مثالی که پیش از این آورده شده در خط شماره ۷ آن از دستور cout استفاده کردهایم. دستور coutدر زبان برنامه نویسی سی پلاس پلاس برای چاپ یک عبارت در خروجی مورد استفاده قرار میگیرد. در مثال ما نخست مقدار متغیر result چاپ شده و بهدنبال آن فرمان خاتمه خط فعلی را ارسال کردهایم.
تا این قسمت، توانستیم ساختار یک برنامه C++ را با یک مثال ساده تشریح کنیم. اکنون میتوانیم بگوییم که درک بهتری در مورد سینتکس و کدهای زبان برنامهنویسی C++ پیدا کردهایم.
پس از اجرای کدهای برنامه نوشته شده در این بخش، نتیجهای مانند آنچه در ادامه نوشته شده خواهیم داشت.
58
این عدد در واقع مجموع ۲ عدد ۲۴ و ۳۴ است که در متغیر resultقرار گرفته است.
نوشتن برنامه Hello World با C++
در این قسمت، نحوه نوشتن یک برنامه ساده با استفاده از زبان برنامه نویسی سی پلاس پلاس را توضیح دادهایم. این برنامه، همان Hello World معروف است که بهطور معمول، هنگام شروع یادگیری هر زبان برنامهنویسی با آن رو به رو خواهید شد. این برنامه، متنی با عنوان Hello World را در خروجی چاپ میکند و هدف از از کدنویسی چنین برنامهای، یک نگاه کلی به کدنویسی زبان C++ است.
قدم اول این است که محیطی را برای برنامهنویسی و اجرای برنامههای سی پلاس پلاس آماده کنید. برای این منظور یکی از روشهای ممکن، نصب و راهاندازی الزامات کدنویسی C++ و اجرای برنامههای آن روی سیستم خود است. اما در اینجا از روش سادهتری که استفاده از یک IDE آنلاین است، استفاده میکنیم.
- وبسایت کامپایلر آنلاین onlinegdb: «+»
پس از ورود به این لینک، با ادیتور کدهای C++ رو به رو میشوید که میتوانید کدهای خود را درون آن نوشته و سپس برای اجرا برنامه، روی دکمه سبزرنگ Run از بالای صفحه کلیک کنید. پس از اجرا، خروجی برنامه در ترمینال پایین رابط کاربری آن نشان داده میشود.
کدهای برنامه Hello World به زبان C++
کدهای نخستین برنامه خود با زبان سیپلاسپلاس را در ادامه، آوردهایم.
1// C++ program to display "Hello World"
2#include <iostream>
3using namespace std;
4int main()
5{
6 cout << "Hello World";
7 return 0;
8}
هدف این برنامه، چاپ عبارت Hello World روی صفحه است.
این کدها را در ادامه، توضیح دادهایم.
- خط شماره ۱: در این خط یک کامنت نوشتهایم که موضوع یا هدف برنامهمان را بیان میکند. Comment-ها در واقع، توضیحاتی هستند که برنامهنویس برای کدها درج میکند تا عملکرد آن را برای فردی که بعدها کد را میخواند، توضیح دهد. افزودن کامنت به کدهای برنامه، اختیاری است. این خطوط توسط کامپایلر نادیده گرفته شده و اجرا نمیشوند. برای درج کامنت در C++ از // در ابتدای خط، برای کامنت تکخطی و از /* Your Comment */ برای کامنتهای چندخطی استفاده میشود.
- خط شماره ۲: در این خط با استفاده از دستور #include محتوای فایل iostream را به برنامه خود اضافه کردهایم. یعنی، هنگام کامپایل برنامه، محتوای این فایل که شامل توابع کتابخانه «ورودی | خروجی» است به برنامه افزوده میشود.
- خط شماره ۳: در این خط، از فضای نام std استفاده کردهایم.
- خط شماره ۴: در این خط، بدنه تابع اصلی برنامه ما یعنی تابع main() شروع شده است. صرفنظر از اینکه این تابع را در چه جایی از کدها نوشتهاید، اجرای برنامه از همین تابع شروع میشود.
- خط شماره ۶: در این خط با دستور cout ، متن Hello World را در خروجی چاپ کردهایم.
- خط شماره ۷: با دستور return 0; برنامه را خاتمه میدهیم.
تا این مرحله، با نوشتن یک برنامه ساده در زبان C++ آشنا شدید.
شی گرایی در زبان برنامه نویسی سی پلاس پلاس
همانطور که پیشتر نیز گفتیم، برنامهنویس شیگرا یکی از مهمترین خصوصیاتی است که زبان C++ همراه خود دارد. البته سی پلاس پلاس از رویکرد برنامهنویسی رویهای یا «رویهگرا» (Procedural-Oriented) هم پشتیبانی میکند.
در این فیلم آموزش به زبانی ساده با مفاهیمی نظیر تابع دوست، کلاس دوست، ارثبری، پلیمورفیسم، سربارگذاری و غیره آشنا خواهید شد. ضمن اینکه با مشاهده فیلم آموزش پروژه محور شی گرایی در سی پلاس پلاس C++ و سامانه امور دانشجویی از فرادرس که لینک آن را در ادامه آوردهایم نیز میتوانید مهارتهای شیگرایی خود را در قالب ساخت پروژه تقویت کنید.
مثال و برنامهای که در قسمت قبلی مشاهده کردید بهصورت رویهای نوشته شده است. اکنون میخواهیم با بیان مثالی دیگر، پارادایم برنامهنویسی شیگرا را توضیح دهیم. بنابراین، کدهای زیر را در نظر داشته باشید.
1#include <iostream>
2using namespace std;
3class Calculate{
4 // Access Modifiers
5 public:
6 // data member
7 int num1 = 50;
8 int num2 = 30;
9 // member function
10 int addition() {
11 int result = num1 + num2;
12 cout << result << endl;
13 }
14};
15int main() {
16 // object declaration
17 Calculate add;
18 // member function calling
19 add.addition();
20 return 0;
21}
انتظار میرود تا پس از اجرای این برنامه، با نتیجهای مشابه آنچه در ادامه آورده شده رو به رو شویم.
80
که عدد ۸۰ را بهعنوان مجموع ۲ عدد بر میگرداند.
کلاس در زبان برنامه نویسی سی پلاس پلاس
کلاسها به زبان ساده، قالب یا الگویی هستند که از روی آنها اشیایی را ایجاد میکنیم. برای درک بهتر، مثال واقعی «کلاس حیوانات» را تجسم کنید. در این حالت، «سگ»، «گربه» و غیره، اشیای از آن محسوب میشوند. کلاس را همچنین میتوان یک «Data Type» دانست که توسط برنامهنویس تعریف میشود. بهطوریکه مؤلفههایی مانند آنچه در ادامه آورده شده را در بر میگیرد.
- عضو دادهای یا «خصوصیت» (Attribute)
- توابع یا متدهای عضو کلاs یا «رفتار» (Member Function)
همانطور که در فهرست کلمات کلیدی C++ هم گفته شد، از class برای تعریف این مفهوم استفاده میکنیم و لازم است تا حرف اول نام تعیین شده برای کلاس خود را با حرف بزرگ بنویسید.
با عملکرد خطوط شماره ۱ و ۲ در قسمت قبلی آشنا شدید و اکنون، به سرغ خط شماره ۳ میرویم که در آن، نخستین کلاس ما تعریف شده است. این کلاس را با توجه به عملکردی که دارد بهصورت Calculate نامگذاری کردهایم. بدنه این کلاس از خط شماره ۳ شروع شده و تا خط شماره ۱۲ ادامه مییابد. در ادامه، سینتکس یک کلاس در C++ را آوردهایم.
1class class_name{
2 // بدنه کلاس
3};
خصوصیات و متدها
در ساختار یک کلاس زبان برنامه نویسی سی پلاس پلاس، با مؤلفههایی نظیر خصوصیات یا فیلدهای دادهای و همچنین متدها رو به رو هستیم. فیلدهای دادهای در واقع متغیرهایی هستند که صفاتی را در خود نگه میدارند. متدها یا توابع عضو نیز توابعی هستند که روی متغیر ها کار میکنند.
برای درک بهتر اگر مثال واقعی کلاس حیوانات را بهخاطر بیاورید، «نژاد» یک گربه را میتوان یکی از خصوصیات آن دانست و «تولید صدای میو» نیز از متدهای آن است.
اگر خطوط شماره ۷ و ۸ را در نظر داشته باشید، ۲ خصوصیت با نامهای num1 و num2 تعریف کردهایم که بهترتیب، ۲ عدد ۵۰ و ۳۰ را نگه میدارند و همان عضو دادهای محسوب میشوند.
در خط شماره ۱۰ نیز، متدی با نام addition تعریف کردهایم که قرار است عملی را روی اعضای دادهای تعریف شده، یعنی num1و num2انجام دهند و در نهایت عددی را بهعنوان خروجی برگردند. این مورد، همان تابع عضو است که با آن آشنا شدیم.
در خط شماره ۵، عبارت public: را داریم که یک کنترلگر دسترسی یا Access Modifier محسوب میشود. به زبان ساده با استفاده از این کنترلگرها مشخص میکنیم که چه کسانی اجازه دسترسی به اعضای دادهای یا متدهای کلاس را دارند. در C++ چندین کنترلگر دسترسی شامل private ، public و protected داریم. کلمه کلیدی public که در اینجا استفاده شده بیانگر این است که خصوصیات و متدهای ما بهصورت عمومی قابل دسترس هستند.
شی در زبان برنامه نویسی سی پلاس پلاس
همانطور که کمی قبلتر توضیح دادهایم، کلاس مانند قالب و طرح کلی است که اشیا را از آن میسازیم. به بیان دیگر برای اینکه بتوانیم از مزیتهای کلاس، متغیرها و متدهای آن بهرهمند شویم باید شیئی را بر مبنای آن بسازیم. به سینتکسی که در ادامه آورده شده، توجه کنید.
class_name object_name;
با توجه به همین راهنما، در خط شماره ۱۷ از مثال، با دستور Calculate add; ، یک شی بهنام add از کلاس Calculate ساختهایم. در واقع، add آبجکت یا نمونهای از کلاس Calcuate محسوب میشود. برای نمونهسازی از یک کلاس درست مانند تعریف یک متغیر در C++ عمل کردهایم.
در خط شماره ۱۹، عبارت add.addition(); را آوردهایم که در واقع، متدaddition() را از شی add صدا زده است. بهطور کلی، برای دسترسی به متدها و متغیرهای شی مورد نظر، از عملگر نقطه یا همان. کمک گرفتهایم.
ادامه یادگیری برنامهنویسی زبان برنامه نویسی سی پلاس پلاس با فرادرس
در صورتیکه قصد افزایش مهارت برنامهنویسی خود به زبان برنامه نویسی سی پلاس پلاس را دارید میتوانید از فیلمهای آموزش که لینک آنها را در ادامه آوردهایم استفاده کنید.
جمعبندی
در این مطلب از مجله فرادرس، سعی بر این بوده تا به زبان ساده به شما توضیح دهیم که زبان برنامه نویسی سی پلاس پلاس چیست. C++ زبان بسیار قدرتمند و معروفی است که کاربردهای بسیار زیادی نیز دارد. شما میتوانید طیف وسیعی از اپلیکیشنها، چه آنهایی که در منابع دارای محدودیت هستند و چه نرمافزارهای بزرگ سازمانی را به کمک این زبان برای سیستم عاملهای گوناگون تولید کنید. با زبان C++ میتوان به سختافزار ماشین دسترسی داشت و کدهایی بهینه برای آن نوشت.
سپس به سراغ ویژگیها آن رفتیم و هر یک را توضیح دادیم و در ادامه کاربردهای C++ را بیان کردیم. زبان برنامه نویسی سی پلاس پلاس در صنایع و حوزهها گوناگون مورد استفاده قرار گرفته. بهطور مثال، ساخت برنامههای سیستمی مانند سیستم عامل عاملهای معروف، انواع بازیها، اپلیکیشنهای واقعیت مجازی و واقعیت افزوده، مخابرات، دیتابیس، ماشین لزنینگ جزو همین حوزهها محسوب میشوند.
پس از آن به سراغ سینتکس یک برنامه ساده در C++ رفتیم و مؤلفههای موجود در ساختار یک برنامه ساده و رویهای در این زبان را توضیح دادیم. همین مورد را با یک مثال شیگرایی در سی پلاس پلاس نیز بیان کردیم و توانستیم برنامه معروف Hello World را بنویسیم.
source