این آموزش ++C توسط برنامهنویسان باتجربهی ++C نوشته شده است که به مبتدیان تا برنامهنویسان پیشرفته کمک میکند تا ++C را به صورت ساده و آسان یاد بگیرند. این آموزش از روشی ساده و عملی برای توضیح مفاهیم ++C به مهندسین نرمافزار استفاده میکند.
++C چیست؟
++C یک زبان برنامهنویسی سطح میانی است که توسط بیارن استروستروپ از سال ۱۹۷۹ در آزمایشگاههای بل توسعه داده شده است. ++C روی پلتفرمهای مختلفی مانند ویندوز، مک او اس و نسخههای مختلف یونیکس اجرا میشود. ++C توسعه یافته زبان برنامهنویسی C با مفاهیم برنامهنویسی شیگرا است. یا به عبارت دیگر، میتوان گفت: «++C، یک ابرمجموعه از زبان C است که مفاهیم شیگرایی به آن اضافه شده است.»
چرا باید ++C یاد بگیریم؟
++C یک زبان برنامهنویسی مهم برای دانشجویان و حرفهایهای حوزه فناوری است تا برنامهنویسان نرمافزار برجستهای شوند. در ادامه برخی از مزایای کلیدی یادگیری ++C را فهرست میکنم:
- ++C بسیار نزدیک به سختافزار است، بنابراین فرصتی برای کار در سطح پایین به شما میدهد که کنترل زیادی در زمینه مدیریت حافظه، عملکرد بهتر و در نهایت توسعه نرمافزارهای قدرتمند فراهم میکند.
- برنامهنویسی ++C به شما درک واضحی از برنامهنویسی شیگرا میدهد. شما هنگام پیادهسازی جداول مجازی و اشارهگرهای جدول مجازی یا شناسایی نوع پویا، درک عمیقی از پیادهسازی سطح پایین چندریختی (Polymorphism) خواهید داشت.
- ++C یکی از زبانهای برنامهنویسی همیشه محبوب است که میلیونها برنامهنویس نرمافزار آن را دوست دارند. اگر برنامهنویس ماهر ++C باشید، هیچگاه بدون کار نخواهید بود و مهمتر اینکه حقوق خوبی برای کار خود دریافت میکنید.
- ++C پراستفادهترین زبان برنامهنویسی در برنامهنویسی کاربردی و سیستم است، بنابراین میتوانید حوزه علاقهمندی خود را در توسعه نرمافزار انتخاب کنید.
- ++C واقعاً به شما تفاوت کامپایلر، لینککننده و بارگذار، انواع دادهها، کلاسهای ذخیرهسازی، انواع متغیرها، محدوده آنها و غیره را آموزش میدهد.
- هزاران دلیل خوب برای یادگیری برنامهنویسی ++C وجود دارد. اما یک چیز قطعی است: برای یادگیری هر زبان برنامهنویسی، نه فقط ++C، باید فقط کد بنویسید، کد بنویسید و در نهایت کد بنویسید تا حرفهای شوید.
برنامهی “سلام دنیا!” با ++C
فقط برای ایجاد کمی هیجان درباره برنامهنویسی ++C، یک برنامه کوچک معمولی “سلام دنیا” به شما میدهم. میتوانید آن را با کلیک روی «ویرایش و اجرا» امتحان کنید.
کد زیر برای چاپ “سلام دنیا” روی صفحه است −
#include <iostream> using namespace std; // main() is where program execution begins. int main() { cout << "Hello, World!"; // prints Hello, World! return 0; }
کامپایلر آنلاین ++C
ما یک کامپایلر آنلاین ++C ساده، کاربرپسند و سریع فراهم کردهایم که در آن میتوانید برنامههای ++C خود را بنویسید، ذخیره کنید، اجرا کنید و با دیگران به اشتراک بگذارید. برای باز کردن آن، روی این لینک کلیک کنید: کامپایلر آنلاین ++C.
سعی کنید روی آیکون دکمه «اجرا» کلیک کنید تا کد ++C زیر را اجرا کرده و پیام متداول «سلام دنیا!» را با استفاده از زبان برنامهنویسی ++C چاپ کند.
#include <iostream> using namespace std; int main() { cout << "Hello, World!"; // prints Hello, World! return 0; }
کامپایلرهای مختلف ++C
کامپایلرهای زیادی برای زبان ++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 به صورت عقبسازگار (backward compatible) است؛ یعنی اکثر ویژگیهای زبان C را پشتیبانی میکند.
برنامهنویسی شیگرا (OOP): ++C از مفاهیم شیگرایی مانند اشیاء و کلاسها، کپسولهسازی، پیوند داده، وراثت و چندریختی پشتیبانی میکند.
زبان کامپایلشونده: ++C یک زبان کامپایلشونده است، به این معنی که کل کد ابتدا به زبان ماشین ترجمه میشود و سپس اجرا میگردد. این ویژگی باعث میشود اجرای برنامهها سریعتر باشد.
کتابخانه الگوهای استاندارد (STL): ++C کتابخانههای متنوعی برای ساختارهای داده و الگوریتمها ارائه میدهد، مانند کانتینرها، تکرارگرها، الگوریتمها و غیره.
مدیریت حافظه پویا: در ++C، با استفاده از عملگرهای
new
و delete
میتوانید حافظه را به صورت پویا اختصاص داده یا آزاد کنید.
مدیریت استثناها (Exception Handling): ++C از بلوکهای
try
, catch
و throw
برای مدیریت خطاها و استثناها استفاده میکند که در زبان C وجود نداشت.
کاربردهای زبان برنامهنویسی ++C 
همانطور که قبلاً گفته شد، ++C یکی از پرکاربردترین زبانهای برنامهنویسی در جهان است. این زبان تقریباً در همه حوزههای توسعه نرمافزار نقش دارد. در ادامه به برخی از این کاربردها اشاره میکنیم: (ادامه دارد…)
توسعه نرمافزارهای کاربردی
زبان برنامهنویسی ++C در توسعه تقریباً تمامی سیستمعاملهای اصلی مانند ویندوز، مک OS X و لینوکس استفاده شده است. علاوه بر سیستمعاملها، بخش اصلی بسیاری از مرورگرها مانند موزیلا فایرفاکس و کروم نیز با استفاده از ++C نوشته شدهاند. همچنین ++C در توسعه محبوبترین سیستم پایگاهداده یعنی MySQL نیز به کار رفته است.
توسعه زبانهای برنامهنویسی
++C به طور گسترده در توسعه زبانهای برنامهنویسی جدید مانند #C، جاوا، جاوااسکریپت، پرل، پوسته C در یونیکس، PHP، پایتون، و وریلاگ (Verilog) و غیره استفاده شده است.
برنامهنویسی محاسباتی
++C بهترین دوست دانشمندان است، زیرا دارای سرعت بالا و بهرهوری محاسباتی بالاست.
توسعه بازیها
++C بسیار سریع است، که به برنامهنویسان اجازه میدهد برای توابع سنگین از نظر پردازش CPU، برنامهنویسی رویهای انجام دهند و کنترل بیشتری بر روی سختافزار داشته باشند. به همین دلیل ++C بهطور گسترده در توسعه موتورهای بازی استفاده میشود.
سیستمهای توکار (Embedded System)
++C بهشدت در توسعه نرمافزارهای پزشکی و مهندسی مانند نرمافزار دستگاههای MRI، سیستمهای پیشرفته CAD/CAM و غیره به کار گرفته شده است.
این فهرست ادامه دارد. حوزههای متنوعی وجود دارند که توسعهدهندگان نرمافزار با رضایت کامل از ++C استفاده میکنند تا نرمافزارهای فوقالعادهای ارائه دهند. من شدیداً توصیه میکنم که زبان ++C را یاد بگیرید و در جامعه نرمافزار، مشارکت مؤثری داشته باشید.
یادگیری ++C از طریق مثالها 
تمرین مثالهای ++C بهترین راه برای یادگیری برنامهنویسی ++C است. تمام فصلهای آموزش ++C ما دارای مثالهای مرتبط همراه با توضیح هستند. شما میتوانید به سادگی از طریق آن مثالها مفاهیم را بهتر درک کنید.
شغلها یا مسیرهای شغلی مرتبط با ++C 
++C یک زبان برنامهنویسی همهکاره و پرکاربرد است. در ادامه فهرستی از برخی نقشهای شغلی که پس از یادگیری ++C میتوانید دنبال کنید آورده شده است:
- مهندس نرمافزار (Software Engineer)
- توسعهدهنده بازی (Game Developer)
- برنامهنویس سیستمها (Systems Programmer)
- توسعهدهنده سیستمهای توکار (Embedded System Developer)
- مهندس رباتیک (Robotics Engineer)
- توسعهدهنده پایگاهداده (Database Developer)
- برنامهنویس گرافیک (Graphics Programmer)
شرکتهایی که برنامهنویسان ++C استخدام میکنند:
- Microsoft
- Amazon
- IBM
- Adobe
- Apple
مخاطبان هدف – چه کسانی باید ++C را یاد بگیرند؟ 
این آموزش ++C برای مبتدیان تهیه شده است تا به آنها در درک مفاهیم پایه تا پیشرفته زبان برنامهنویسی ++C کمک کند. این آموزش برای توسعهدهندگان نرمافزار و بازی، توسعهدهندگان سیستمهای توکار، برنامهنویسان سیستم، دانشجویان و مدرسین مفید است. پس از تکمیل این آموزش، شما درک بسیار خوبی از برنامهنویسی ++C خواهید داشت که میتوانید با تکیه بر آن، خود را به سطح بالاتری برسانید.
پیشنیازهای یادگیری ++C 
قبل از آنکه شروع به تمرین مثالهای مختلف موجود در این آموزش ++C کنید، فرض بر این است که شما با اصول برنامهنویسی کامپیوتر و زبانهای برنامهنویسی آشنا هستید. همچنین بهتر است با موارد زیر آشنایی داشته باشید:
- کامپایلر ++C
- محیط توسعه (IDE)
- ویرایشگر متن
تمرین ++C 
پس از تکمیل آموزش ++C، میتوانید از بخشهای زیر برای تمرین مفاهیمی که آموختهاید استفاده کنید:
- پرسشهای مصاحبه ++C
- آزمون آنلاین ++C
- تست آنلاین ++C
- آزمون شبیهسازیشده ++C
مرجع کتابخانه ++C
فهرست زیر، مرجع کامل فایلهای هدر (Header Files) در زبان ++C است:
- ++C
<fstream>
- ++C
<iomanip>
- ++C
<ios>
- ++C
<iosfwd>
- ++C
<iostream>
- ++C
<istream>
- ++C
<ostream>
- ++C
<sstream>
- ++C
<streambuf>
- ++C
<atomic>
- ++C
<complex>
- ++C
<exception>
- ++C
<functional>
- ++C
<limits>
- ++C
<locale>
- ++C
<memory>
- ++C
<new>
- ++C
<numeric>
- ++C
<regex>
- ++C
<stdexcept>
- ++C
<string>
- ++C
<thread>
- ++C
<tuple>
- ++C
<typeinfo>
- ++C
<utility>
- ++C
<valarray>
مرجع کتابخانه STL در ++C
فهرست زیر، مرجع کامل کتابخانههای STL در ++C است:
- ++C
<array>
- ++C
<bitset>
- ++C
<deque>
- ++C
<forward_list>
- ++C
<list>
- ++C
<map>
- ++C
<multimap>
- ++C
<queue>
- ++C
<priority_queue>
- ++C
<set>
- ++C
<stack>
- ++C
<unordered_map>
- ++C
<unordered_set>
- ++C
<vector>
- ++C
<algorithm>
- ++C
<iterator>
مرور سریع ++C
برای مرور سریع زبان برنامهنویسی ++C، به لینکهای زیر مراجعه کنید:
- راهنمای سریع ++C
- برگه تقلب ++C (Cheat Sheet)
- برگه تقلب STL در ++C
- پرسش و پاسخهای ++C
- جدیدترین پرسشها و پاسخهای ++C را در بخش “پرسش و پاسخ ++C” بررسی کنید.
پرسشهای متداول درباره آموزش ++C
1. سادهترین راه برای یادگیری برنامهنویسی ++C چیست؟
شما میتوانید با دنبال کردن فصلهای آموزش ++C وبسایت TutorialsPoint به همراه مجموعهای از مثالها، ++C را یاد بگیرید. تمام فصلهای این آموزش با مثالهای مناسب توضیح داده شدهاند. کافیست بهصورت منظم آموزشها را دنبال کرده و روزانه تمرین کنید.
2. آیا برای یادگیری ++C نیاز به دانش قبلی برنامهنویسی وجود دارد؟
خیر. شما میتوانید بدون داشتن دانش قبلی از زبانهای برنامهنویسی، یادگیری ++C را شروع کنید. این آموزش، مفاهیم را از پایه آموزش میدهد.
3. مفاهیم مهم در برنامهنویسی ++C کداماند؟
برخی از مفاهیم مهم در برنامهنویسی ++C عبارتند از:
- دستورات شرطی
- حلقهها
- آرایهها
- ساختارها
- کلاس و شیء
- وراثت
- چندریختی (Polymorphism)
- کتابخانه استاندارد STL در ++C
4. یادگیری برنامهنویسی ++C چقدر زمان میبرد؟
این موضوع بستگی به توانایی یادگیری شما دارد. بهطور میانگین، یک دانشآموز میتواند با تمرین منظم در عرض ۲ تا ۳ ماه، ++C را بهخوبی یاد بگیرد.
5. چه کسی زبان برنامهنویسی ++C را توسعه داد؟
زبان برنامهنویسی ++C توسط بیارنه استروستروپ (Bjarne Stroustrup) بهعنوان گسترشی از زبان C توسعه داده شد. ++C را میتوان نسخه پیشرفته زبان C با مفاهیم شیءگرایی دانست.
6. نام اصلی ++C چه بود؟
نام اولیه زبان ++C، “C with Classes” بود، زیرا این زبان شامل تمام ویژگیهای زبان C بههمراه قابلیت تعریف کلاس بود.