دوره آموزشی C++

دوره آموزشی C++

وضعیت تکمیل شده
سطح مقدماتی تا پیشرفته
31 قسمت
17:09:06

C++ به عنوان یک زبان بسیار قدرتمند شناخته می شود. C++ به کاربر این امکان را می دهد تا روی نحوه استفاده از منابع کنترل داشته باشد، بنابراین سرعت و توانایی این زبان در استفاده از منابع از سایر زبان ها بیشتر است. به لطف عملکرد برتر C++، اغلب برای توسعه بازی و اپ های دسکتاپ از این زبان استفاده می شود. بسیاری از بازی های ویدیویی با عنوان AAA با C++ ساخته شده اند. 

بزرگ ‌ترین نقطه قوت C++ مقیاس ‌پذیری بالای آن است، بنابراین اپلیکیشن هایی که منابع بسیار زیادی دارند معمولاً با کمک آن ساخته می‌شوند. C++ به عنوان یک زبان تایپ استاتیک، عموماً عملکرد بهتری نسبت به زبان‌های تایپ دینامیک دارد، زیرا کد نوشته شده قبل از اجرا بررسی می‌شود. 

در این زبان، کاربر کنترل زیادی بر نحوه استفاده برنامه خود از منابع دارد، بنابراین اپ نوشته شده منابع بسیار کمی را اشغال می کند. در مجموع، کاربران اغلب از C++ برای کدنویسی توابعی استفاده می کنند که به سرعت و استفاده از منابع وابسته هستند.


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


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


ویژگی های زبان C++ چیست؟

ویژگی های زبان C++ چیست؟


زبان برنامه نویسی C++ دارای ویژگی های متعددی است که در این بخش به معرفی آن ها می پردازیم:



1.    شیء گرا بودن


C++ برخلاف C که یک زبان رویه ای بوده، یک زبان شی گرا است، یعنی در حین برنامه نویسی از اشیاء استفاده می کند. این اشیاء یا همان آبجکت ها به کاربر کمک می کنند تا توابع لحظه‌ای مبتنی بر مفهوم انتزاع داده، تجمیع یا کپسوله سازی داده ها، وراثت داده ها، پنهان سازی داده ها و توابع چندشکلی را پیاده سازی کند. به طور خلاصه در مورد 5 مفهوم اصلی برنامه نویسی شی گرا در این بخش توضیح می دهیم:

•    انتزاع داده: انتزاع داده عملی است برای نمایش ویژگی های مهم داده ها بدون در نظر گرفتن جزئیات پس زمینه یا روشی که برای به دست آوردن آن داده اعمال می شود.

•    کپسوله ‌سازی داده‌ ها: منظور از کپسوله‌ سازی داده‌ ها فرآیندی است که برای پیاده‌سازی انتزاع داده ‌ها از طریق تجمیع آنها و توابع در یک بلوک انحصاری اجرا می شود.

•    وراثت داده: اصطلاح وراثت به انتقال خصوصیات کلاس والد به کلاس فرزند در یک مجموعه داده اشاره دارد. این مفهوم افزونگی برنامه را کاهش می دهد و انتقال یا کپی ویژگی های یک کلاس به کلاس دیگر را آسان می سازد.

•    پنهان سازی داده ها: پنهان سازی داده ها به محافظت از داده در برابر دسترسی غیر مجاز اشاره دارد. توجه به این نکته مهم است که کپسوله‌ سازی داده ‌ها با پنهان سازی آنها متفاوت است، زیرا کپسوله ‌سازی عمدتاً بر تغییر تمرکز روی داده‌ های مهم و تجمیع آن ها صرف نظر از اهمیت شان اشاره دارد در حالی که پنهان سازی به ماهیت داده توجه می کند.

•    توابع چند شکلی: واضح است که توابع چندشکلی به روش نمایش داده ها به بیش از یک شکل اشاره دارد.


2.    قابلیت حمل 

C++ مستقل از پلتفرم نیست، زیرا برنامه های کامپایل شده در یک سیستم عامل روی سیستم عامل دیگری اجرا نمی شوند. اما از دیدگاهی دیگر، قابلیت حمل به معنی استفاده از یک قطعه کد در محیط های گوناگون است. اجازه دهید این ویژگی ++C را با کمک یک مثال توضیح دهیم. 

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

3.    سادگی


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


4.    سطح بالا بودن

ذکر این نکته ضروری است که C++ یک زبان برنامه نویسی سطح بالا است، برخلاف C که یک زبان برنامه نویسی سطح متوسط است. کار با C++ به عنوان یک زبان سطح بالا برای کاربر آسان‌ تر است، زیرا می تواند آن را با یک زبان قابل درک برای انسان، یعنی انگلیسی مرتبط سازد.

 

5.    محبوبیت


زبان C++  به عنوان یکی از زبان های خانواده C از محبوبیت بالایی در میان برنامه نویسان برخوردار است. در صورتی که یکی از زبان های شیء گرا را بلد باشید، تقریباً در یادگیری هیچ زبان شیءگرای دیگری مشکل نخواهید داشت.


6.    حساس به حروف کوچک و بزرگ

درست مانند زبان C، زبان برنامه نویسی C++ نیز به حروف بزرگ و کوچک حساس است. به عنوان مثال، اگر کلمه کلیدی "cout" را به صورت "Cout" یا "COUT" بنویسید، معنای آن تغییر خواهد کرد. سایر زبان های برنامه نویسی مانند HTML و MySQL به حروف بزرگ و کوچک حساس نیستند.


7.    مبتنی بر کامپایلر

برخلاف جاوا و پایتون که مبتنی بر مفسر هستند، C++ یک زبان مبتنی بر کامپایلر است و از این رو نسبتاً سریع تر از پایتون و جاوا اجرا می شود.


8.    DMA (تخصیص حافظه دینامیک)

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


9.    وجود کتابخانه ها

زبان برنامه نویسی C++ یک کتابخانه غنی از توابع داخلی ارائه می دهد که کار را برای برنامه نویس آسان می سازد. این توابع با گنجاندن فایل های هدر مناسب قابل دسترسی هستند.


10.    سرعت

همانطور که قبلاً بحث شد، C++ مبتنی بر کامپایلر است، از این رو از سایر زبان‌ های برنامه‌ نویسی مانند پایتون و جاوا که مبتنی بر مفسر هستند، بسیار سریع‌ تر اجرا می شود.


پیش نیازهای آموزش زبان C++ چه مواردی هستند؟


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

اما اگر این مهارت های اولیه را نداشته باشید چه باید کرد؟ در پاسخ باید گفت اصلاً نگران نباشید! اینترنت پر از منابعی است که به شما کمک می کند تا پیش زمینه کافی را در این زمینه کسب کنید. پیش از شروع آموزش زبان C++  مراحل زیر را مد نظر داشته باشید:

مرحله 1: ساختار نحوی زبان C++ را یاد بگیرید

Syntax یا ساختار نحوی، گرامر زبان برنامه نویسی و پایه و اساس آن است. ساختار نحوی در واقع الگوی تشکیل و درک کد C++ را مشخص می کند. برخی از نمونه های ساختار نحوی عبارت اند از:

#include <iostream> این ساختار یک کتابخانه فایل هدر است که ویژگی ها را به یک برنامه وارد می کند. این دستور از برنامه می خواهد تا محتوا را از فایلی به نام <iostream> کپی کند که مخفف ورودی و خروجی داده است. 

int main ( ) یک ساختار نحوی است که تابع اصلی را مشخص می کند. توابع بخش مهمی از برنامه های ++C هستند زیرا یک عمل را در کد تعریف می کنند. دستورات توابع در براکت { } نوشته و اجرا می شوند.
مرحله 2: اصول C++ را آموخته و تمرین کنید

پس از تسلط بر ساختار نحوی، می بایست به عنوان یک برنامه نویس C++ مفاهیم بیشتری از این زبان را درک کنید. برخی از مفاهیم مهم عبارت اند از:

توابع- یک تابع مجموعه ای از عبارات است که در کنار هم یک عمل را انجام می دهند. هر برنامه ++C حداقل از یک تابع تشکیل شده است.

آرایه ها- آرایه یک ساختار داده ای است که مجموعه ای متوالی از عناصر با اندازه ثابت را ذخیره می کند.

رشته ها - رشته ها آرایه های یک بعدی از کاراکترها هستند که با یک کاراکتر تهی '\0' به پایان می رسند. 

اشاره گرها - اشاره گرها متغیرهایی هستند که مقادیر آنها آدرس سایر متغیرها است. 

مراجع- مرجع یک نام مستعار است، یعنی نام دیگری برای متغیری که از قبل وجود داشته است. اگر یک مرجع با یک متغیر مقداردهی اولیه شود، در ادامه نام آن متغیر و نام مرجع می توانند به جای یکدیگر برای اشاره به آن متغیر مورد استفاده قرار گیرند.

کلاس ها و اشیا - کلاس ها یکی از ویژگی های کلیدی C++ هستند که برای مشخص کردن شکل یک شیء استفاده می شود. 

مرحله 3: دانش خود را در مورد C++ عملیاتی کنید

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

مرحله 4: یادگیری پیشرفته C++ را آغاز کنید

برنامه نویسی متوسط و پیشرفته C++ بر پایه اصول اولیه استوار است و طیف وسیعی از ابزارها را در اختیار برنامه نویسان قرار می دهد. در سطح متوسط، برنامه نویسان باید بدانند که مراجع و اشاره گرها چگونه کار می کنند. درک دقیق این مفاهیم و نحوه ایجاد و استفاده از توابع وکتابخانه ها، برنامه نویسان را در مسیر یادگیری تکنیک های پیشرفته قرار می دهد.

تمام موارد ذکر شده در بالا در دوره آموزشی زبان C++ آموزش داده خواهد شد. بنابراین نیازی به نگرانی در مورد نحوه یادگیری این مفاهیم نخواهید داشت. 


موارد استفاده از زبان C++ 

آموزش سی پلاس پلاس

پس از بررسی ویژگی ‌های C++، در این بخش به برخی از کاربردهای رایج این زبان می پردازیم:

سیستم‌های عامل

مایکروسافت ویندوز، Mac OSX و لینوکس، همگی در C++ برنامه نویسی شده اند. C/C++ ستون فقرات تمام سیستم های عامل شناخته شده است، زیرا یک زبان برنامه نویسی قوی و سریع است که آن را به گزینه ای ایده آل برای توسعه یک سیستم عامل تبدیل می کند. علاوه بر این، C کاملاً به زبان اسمبلی نزدیک است که به نوشتن ماژول های سطح پایین سیستم عامل کمک می کند.

مرورگرها

موتورهای رندرینگ مرورگرهای وب به دلیل سرعت بالا در C++ برنامه نویسی می شوند. مرورگرها برای نمایش وبسایت ها به سرعت بالایی نیاز دارند در نتیجه در ساخت چنین برنامه هایی از ++C به عنوان زبان برنامه‌نویسی استفاده می شود.

کتابخانه ها

بسیاری از کتابخانه های سطح بالا از C++ به عنوان زبان برنامه نویسی اصلی استفاده می کنند. Tensorflow، یکی از پرکاربردترین کتابخانه های یادگیری ماشینی، از C++ به عنوان زبان برنامه نویسی استفاده کرده است. چنین کتابخانه ‌هایی به محاسبات سنگینی نیاز دارند، زیرا ضرب ماتریس ‌های ابعاد بزرگ به منظور آموزش مدل ‌های یادگیری ماشینی در آنها انجام می گیرد. 

برنامه های گرافیکی

همه برنامه های گرافیکی نیاز به رندرگیری سریع دارند و درست مانند مرورگرهای وب، C++ در اینجا نیز به کاهش تأخیر کمک می کند. در نرم افزارهایی که از بینایی کامپیوتر، پردازش تصویر دیجیتال، پردازش گرافیکی پیشرفته و غیره استفاده می کنند از C++ به عنوان زبان برنامه نویسی اصلی بهره می گیرند. حتی بازی های محبوبی که از نظر گرافیکی سنگین هستند از C++ به عنوان زبان برنامه نویسی اولیه استفاده می کنند. 

اپلیکیشن های بانکی

اپلیکیشن های بانکی میلیون ها تراکنش را به صورت روزانه پردازش می کنند و نیاز به پشتیبانی همزمان و تأخیر کم دارند. C++ به دلیل سرعت و پشتیبانی چند رشته ‌ای که از طریق کتابخانه ‌های استاندارد مختلف ارائه می ‌شود، به‌ طور پیش فرض برای طراحی بسیاری از این اپلیکیشن ها انتخاب می گردد. 

پایگاه های داده

Postgres و MySQL دو نمونه از پرکاربردترین پایگاه های داده به زبان C++ و C نوشته شده اند. این پایگاه‌ های داده تقریباً در همه اپلیکیشن های معروفی که همه ما در زندگی روزمره از آنها استفاده می‌کنیم مانند Quora، YouTube و غیره استفاده می‌ شوند.

کامپایلرها

خود کامپایلرهای زبان های برنامه نویسی مختلف از C و C++ به عنوان زبان برنامه نویسی اصلی استفاده می کنند. دلیل این مسئله این است که هر دو زبان C و C++ به سخت افزار نزدیک تر بوده و بنابراین گزینه ای ایده آل برای این سیستم های کامپایل به شمار می آیند. 


بازار کار زبان C++ چگونه است؟


زبان های برنامه نویسی همیشه در حال تکامل هستند. در حال حاضر فقط 43.4 درصد از توسعه دهندگان برنامه تمایل دارند از ++C به عنوان زبان برنامه نویسی استفاده کنند در حالی که Rust محبوب ترین زبان است و پس از آن TypeScript و Python در رتبه های بعدی قرار دارند. اگر توسعه ‌دهندگان خواهان زبان‌ هایی مانند Rust یا Python هستند، پس استفاده از C++ چه فایده ‌ای دارد؟ در پاسخ به این سؤال باید گفت که طبق آخرین نظرسنجی ها از توسعه دهندگان حرفه ای مشخص شده است که C++ همچنان بر قلمرو برنامه نویسی تسلط دارد. برخی از برنامه های کاربردی که در ++C اجرا می شوند عبارتند از:

•    برنامه های Adobe (مانند ایلاستریتور، فتوشاپ و غیره)
•    Win Amp Media Player
•    MySQL
•    Postgres
•    Apple OS (برخی بخش ها)
•    سیستم عامل مایکروسافت ویندوز (ویندوز 95، ME، 98؛ XP، مایکروسافت آفیس و غیره)
•    موزیلا فایرفاکس
•    مرورگر کروم و بسیاری موارد دیگر.

در ایران اما یکی از زبان های برنامه نویسی پرکاربرد با درآمد مناسب، زبان برنامه نویسی C++  است. برخلاف بسیاری از کشورهای دنیا که این زبان در آنها یکی از پردرآمدترین زبان هاست و در حوزه های مختلف استفاده می شود، در ایران این موضوع کم‌ رنگ تر است. 


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


نام‌های بزرگ در صنعت کامپیوتر مانند مایکروسافت، اینتل، و غیره هر یک کامپایلرهای ++C اختصاصی خود را ارائه داده اند. شرکت هایی مانند مایکروسافت، QT، JetBrains و Embarcadero محیط های توسعه یکپارچه ای را برای نوشتن کد در C++ به بازار معرفی کرده اند. کتابخانه های محبوب C++ در طیف گسترده ای از رشته های کامپیوتری از جمله هوش مصنوعی، یادگیری ماشینی، رباتیک، ریاضیات، محاسبات علمی، پردازش صوت و پردازش تصویر در دسترس هستند. در این بخش، برخی از ابزارهای مورد نیاز برنامه نویسی به زبان C++ شامل کامپایلرها، ابزارهای ساخت و IDE ها را معرفی می کنیم.

کامپایلرها

کامپایلرهای متعددی وجود دارد که از C++ پشتیبانی می‌کنند، از جمله GCC/g++، MSVC (Microsoft Visual C++)، Clang و کامپایلر اینتل. هر کامپایلر نسخه های مختلفی دارد که از سیستم های عامل مختلف پشتیبانی می کند. برخی از این کامپایلرها عبارت اند از:

•    GCC
•    Microsoft Visual C++
•    Clang
•    Intel C++ Compiler

ابزارهای ساخت

پیش از استفاده از کامپایلرها، به زیرساختی نیاز دارید که به ایجاد و توسعه یک برنامه کامل کمک کند. ابزارهای ساخت در واقع همان زیرساخت هایی هستند که برای توسعه یک برنامه در محیط برنامه نویسی C++ مورد نیازند. برخی از مهم ترین ابزارهای ساخت عبارت اند از:

•    Make
•    Cmake
•    Ninja
•    Microsoft Build Engine (MSBuild)
•    Conan, Vcpkg, Buckaroo

IDE یا محیط های توسعه یکپارچه

مجموعه ای از ویرایشگرها و محیط های توسعه یکپارچه (IDE) را می توان برای توسعه برنامه C++ به کار برد. ویرایشگرهای متن معمولاً برنامه های سبکی هستند، اما قابلیت های کمتری نسبت به یک IDE دارند و از این رو فقط برای فرآیند نوشتن کد استفاده می شوند. اشکال زدایی یا آزمایش کد در یک ویرایشگر انجام نمی شود و برای این کار به یک IDE نیاز است. 

از ویرایشگر متن مانند Sublime Text، Atom، Visual Studio Code، vi/vim و Emacs می توان برای نوشتن کد ++C استفاده کرد. در مقابل برخی از IDE ها که به طور خاص برای C++ طراحی شده اند عبارت اند از CLion، Qt Creator و C++Builder، در حالی که IDE هایی مانند Xcode و Visual Studio از زبان های دیگر نیز پشتیبانی می کنند.


نمونه پروژه برنامه نویسی به زبان c++

نمونه سی پلاس پلاس


بهترین راه برای شروع هر زبان برنامه نویسی ایجاد چند پروژه تمرینی است. مرور یک کتاب به دانش شما می‌افزاید، اما روشی عملی برای کسب مهارت‌های لازم نیست. تنها راه برای آموختن نحوه عملکرد ویژگی های C++، توسعه پروژه های واقعی اما ساده است. این پروژه ها می توانند به کاربران کمک کنند تا اصول زبان برنامه نویسی C++ را شناخته و در این راه تجربه کسب کنند. در این بخش، چند مورد از کاربردی ترین نمونه پروژه های برنامه نویسی C++ را برای نوآموزان معرفی می کنیم:

1) پروژه تبدیل ارز

یکی از بهترین و ساده ترین پروژه های C++ ، تبدیل ارز است. تنها کاری که باید انجام دهید این است که ارز مورد نیاز را وارد کرده و ارز خروجی را مطابق با آن تبدیل کنید. همچنین باید راهی برای سفارشی سازی ارزها در این برنامه وجود داشته باشد. تبدیل ارز باید قابل اعتبار سنجی باشد تا عملیات تبدیل فقط روی داده های عددی عمل کند. بر این اساس می بایست برای داده های نامعتبر یک کد خطا نمایش داده شود.



2) ماشین حساب دیجیتال


یکی از ساده ترین پروژه های C++ برای شروع، ماشین حساب دیجیتال است. این پروژه عمدتاً مبتنی بر رابط کاربری گرافیکی است که اجرای آن را آسان می کند. این یک برنامه منو محور بوده و در آن خروجی ها توسط کاربر تولید می شود. این پروژه به اعتبارسنجی ورودی‌ها نیاز دارد، یعنی محاسبه تنها در صورتی انجام ‌شود که داده‌های درج شده از نظر ماهیت، داده های عددی باشند. 

3) پیانوی دیجیتال

این یک پروژه مبتنی بر رابط کاربری گرافیکی است که در آن می ‌توانید روی کلیدهای یک پیانوی مجازی کلیک کرده و آهنگ‌های دلخواه خود را بسازید. این پروژه ممکن است ساده به نظر برسد، اما مفاهیم زیادی در آن گنجانده شده است که کاملاً پیچیده هستند. اجرای توابع ناهمگام و همچنین دسترسی به کتابخانه های صوتی مختلف از پیچیدگی های این پروژه است. 

اطلاعات بیشتر
جلسات دوره
call

جهت ارتباط مستقیم و مکاتبه با آکادمی آی تی می توانید از روش های تماس زیر استفاده نمایید.