آموزش شروع برنامه نویسی C++ - از مبتدی تا فراتر

Beginning C++ Programming - From Beginner to Beyond

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: مهارت های برنامه نویسی شی گرا (OOP) و STL مدرن C++ را به دست آورید. C++14 و C++17 پوشش داده شده است. اطلاعات C++20 را در زیر ببینید. آموزش برنامه نویسی با یکی از قوی ترین زبان های برنامه نویسی که امروزه وجود دارد، C++. مفاهیم کلیدی برنامه نویسی را به دست آورید که در سایر زبان های برنامه نویسی نیز کاربرد دارند یادگیری Modern C++ به جای نسخه منسوخ C++ که اکثر دوره های دیگر آموزش ویژگی های C++ را از پایه تا پیشرفته تر مانند توابع ارثی و چند شکلی یاد بگیرید C++ را با استفاده از یک برنامه درسی اثبات شده یاد بگیرید. مطالب بیشتری را نسبت به اکثر دوره‌های دانشگاه ++C پوشش می‌دهد. C++ را از یک استاد مجرب دانشگاه که بیش از 25 سال است از C++ استفاده کرده و تدریس می‌کند، شامل آزمون‌ها، تمرین‌های برنامه‌نویسی زنده، تمرین‌های کدنویسی چالشی و تکالیف است بخش جدید: آموزش استفاده از کد ویژوال استودیو با C++ بخش جدید: همه چیز را در مورد استفاده از C++ Lambda Expressions بیاموزید پیش نیازها:دسترسی به کامپیوتری که دارای Windows، Mac OS X یا Linux است.

کدام زبان برنامه نویسی اغلب به عنوان نشان افتخار در میان توسعه دهندگان نرم افزار دیده می شود؟ C++

کدام زبان برنامه نویسی را می توانید یاد بگیرید که وقتی به رزومه شما اضافه می شود، اغلب برای شما مصاحبه شغلی ایجاد می کند؟ C++

کدام زبان برنامه نویسی به طور معمول در بین 5 زبان برنامه نویسی برتر از نظر محبوبیت رتبه بندی می شود و تقریباً 20 سال است که به طور مداوم در 10 زبان برنامه نویسی برتر قرار دارد؟ C++

چرا باید C++ را یاد بگیرید

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

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

عناوین نرم افزارهای بسیار بسیار زیادی وجود دارند که به طور کامل یا جزئی در C++ نوشته شده اند. اینها شامل سیستم عامل های Windows، Linux و Mac OSX می شوند!

بسیاری از محصولات Adobe مانند Photoshop و Illustrator، موتورهای پایگاه داده MySQL و MongoDB، و بسیاری دیگر در C++ نوشته شده‌اند.

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

آیا می توانید ببینید که چگونه یادگیری C++ فرصت های شغلی بیشتری را برای شما باز می کند؟

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

اما دلیل اصلی که برنامه نویسان احتمالاً باید C++ را یاد بگیرند این است که بسیار قدرتمند است!

منظورم از قدرتمند چیست؟

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

می تواند به راحتی مقیاس شود. و همچنین می تواند قابل حمل باشد.

C++ می‌تواند کارهای زیادی را انجام دهد که زبان‌های دیگر نمی‌توانند انجام دهند.

به همین دلیل است که تقریباً هر زبان اصلی راهی برای ارتباط با کدهای نوشته شده در C++ دارد.

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

چگونه یک مبتدی می تواند C++ را یاد بگیرد؟

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

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

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

در نتیجه، می‌توانید این دوره را با اطمینان خاطر بگذرانید و بدانید که C++ را به روشی درست و در کوتاه‌ترین زمان ممکن یاد خواهید گرفت.

کدام نسخه از C++ را باید یاد بگیرم؟

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

فرانک C++ مدرن را به شما آموزش می‌دهد (مخصوصاً C++ 14 و C++17).

C++ را به روشی درست، با مدرن C++، همانطور که فرانک در این دوره آموزش داده است، بیاموزید.

C++20 چطور؟ آیا لازم نیست در مورد آن نیز یاد بگیرم؟

این دوره در حال حاضر C++14 و C++17 را پوشش می‌دهد، اما اگر در نهایت می‌خواهید C++20 را یاد بگیرید همچنان معتبر است.

C++20 جدید است و واقعیت این است که کامپایلرها و ابزارهای C++20 هنوز برای بهترین زمان آماده نیستند و صنعت عمدتاً از C++14 استفاده می کند. بنابراین یادگیری C++20 در حال حاضر وقتی صنعت از آن استفاده نمی‌کند واقعاً فایده‌ای برای شما ندارد.

سال‌های زیادی طول می‌کشد تا صنعت به C++20 مهاجرت کند و این بدان معناست که مشاغل برای C++20 برای مدتی طولانی وجود ندارند.

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

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

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

اگر اصول اولیه را یاد نگیرید، به هیچ نسخه ای از C++ تسلط نخواهید داشت.

یادگیری مبانی C++ مدرن باید اولویت شما باشد که در این دوره خواهید آموخت!

آیا یادگیری C++ دشوار است؟

با تمام قدرت و انعطاف‌پذیری C++، پیچیدگی به وجود می‌آید.

شکی نیست که C++ یکی از پیچیده ترین زبان های برنامه نویسی موجود است.

اما با مربی مناسب و آموزش مناسب، واقعاً می‌توانید به سرعت با ++C به سرعت بالا بروید، و این چیزی است که این دوره در مورد آن است.

در این دوره چه چیزی یاد خواهم گرفت؟

این دوره بدون تجربه قبلی با C++ (یا حتی برنامه نویسی به طور کلی) فرض نمی‌کند و در نهایت مهارت ایجاد برنامه‌های خود در C++ را خواهید داشت.

موضوعات کلیدی تحت پوشش عبارتند از.

* حلقه زدن با while، do/while for، مبتنی بر محدوده برای عبارات و بازگشت
* انجام محاسبات و نمایش نتایج
* توابع
* اشاره گر
* استفاده از کلاس های موجود و ایجاد اشیا
* ایجاد کلاسهای خود
* با استفاده از کلاسهای استاندارد کتابخانه الگوی پایه مانند Vector
* سازنده و تخریب کننده
* معناشناسی کپی و جابجایی از جمله سازنده های کپی، سازندگان انتقال، و تکلیف کپی و انتقال
* نحوه بارگذاری بیش از حد عملگرها
* استفاده از وراثت و سلسله مراتب کلاس
* استفاده از توابع چند شکلی و اتصال پویا
* استفاده از اشاره گرهای هوشمند
* استفاده از جریان ورودی/خروجی** مقدمه ای بر C++ STL
* مقدمه ای بر Exception Handling
* و خیلی بیشتر.


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

قالب دوره شامل نظریه و مفاهیمی است که سپس با نمونه‌های کد زنده تقویت می‌شوند. اغلب از دیباگر C++ برای گذر از کد و تجزیه و تحلیل متغیرها برای درک بهتر رفتار C++ استفاده می شود. مربی همچنین از یک تبلت خودکار برای نوشتن روی صفحه و ارائه توضیحات تصویری بیشتر استفاده می کند.

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

چه چیزی از یادگیری ++C بدست می‌آورم؟

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

آیا برای شروع آماده هستید؟

اگر آماده دریافت اولین شغل برنامه نویسی با حقوق هستید یا به یک موقعیت برنامه نویسی ارشد تر بروید، این دوره برای شما مناسب است!

کار جدید یا فرصت مشاوره در انتظار شماست!

چرا امروز شروع نمی کنید؟

برای ثبت نام در دوره، روی دکمه ثبت نام کلیک کنید!


سرفصل ها و درس ها

معرفی Introduction

  • درباره دوره About the Course

  • چرا C++ یاد بگیریم؟ Why Learn C++?

  • C++ مدرن و استاندارد C++ Modern C++ and the C++ Standard

  • همه اینها چگونه کار می کند؟ How does all this work?

  • سوالات متداول - لطفا بخوانید! FAQ -- Please Read!

نصب و راه اندازی Installation and Setup

  • نمای کلی نصب و راه اندازی Installation and Setup Overview

  • نصب کامپایلر C++ در ویندوز Installing the C++ Compiler on Windows

  • نصب CodeLite در ویندوز Installing CodeLite on Windows

  • پیکربندی CodeLite در ویندوز Configuring CodeLite on Windows

  • نصب کامپایلر C++ در Mac OSX Installing the C++ Compiler on Mac OSX

  • نصب CodeLite در Mac OSX Installing CodeLite on Mac OSX

  • پیکربندی CodeLite در Mac OSX Configuring CodeLite on Mac OSX

  • با استفاده از رابط خط فرمان Using the Command-Line interface

  • نصب CodeLite در لینوکس اوبونتو Installing CodeLite on Ubuntu Linux

  • پیکربندی CodeLite در لینوکس اوبونتو Configuring CodeLite on Ubuntu Linux

  • ایجاد یک الگوی پیش فرض پروژه CodeLite (همه نسخه ها) Creating a Default CodeLite Project Template (All Versions)

  • استفاده از رابط خط فرمان در ویندوز Using the Command-Line Interface on Windows

  • استفاده از رابط خط فرمان در Mac OSX Using the Command-Line Interface on Mac OSX

  • استفاده از رابط خط فرمان در لینوکس (اوبونتو) Using the Command-Line Interface on Linux (Ubuntu)

  • استفاده از کامپایلر C++ مبتنی بر وب Using a Web-based C++ Compiler

  • با استفاده از منابع دوره کد منبع گنجانده شده Using the Included Source Code Course Resources

بررسی اجمالی برنامه درسی Curriculum Overview

  • بررسی اجمالی برنامه درسی Curriculum Overview

  • بررسی اجمالی تمرینات چالشی بخش Overview of the Section Challenge Exercises

  • بررسی اجمالی آزمون های بخش Overview of the Section Quizzes

شروع شدن Getting Started

  • نمای کلی بخش Section Overview

  • مروری بر رابط CodeLite An Overview of the CodeLite Interface

  • نوشتن اولین برنامه ما Writing our first program

  • ساختن اولین برنامه ما Building our first program

  • خطاهای کامپایلر چیست؟ What are Compiler Errors?

  • هشدارهای کامپایلر چیست؟ What are Compiler Warnings?

  • خطاهای لینکر چیست؟ What are Linker Errors?

  • خطاهای زمان اجرا چیست؟ What are Runtime Errors?

  • خطاهای منطقی چیست؟ What are Logic Errors?

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 4 Section 4 Quiz

ساختار یک برنامه ++C Structure of a C++ Program

  • نمای کلی بخش Section Overview

  • مروری بر ساختار یک برنامه ++C Overview of the Structure of a C++ Program

  • #شامل دستورالعمل پیش پردازنده #include Preprocessor Directive

  • نظرات Comments

  • تابع main(). The main() function

  • فضاهای نام Namespaces

  • ورودی و خروجی اصلی (I/O) با استفاده از cin و cout Basic Input and Output (I/O) using cin and cout

  • استفاده از cout و عملگر درج برای سلام کردن به فرانک Using cout and the insertion operator to say Hi to Frank

  • استفاده از cout و عملگر درج Using cout and the insertion operator

  • با استفاده از cin و عملگر استخراج Using cin and the extraction operator

  • آزمون بخش 5 Section 5 Quiz

متغیرها و ثابت ها Variables and Constants

  • نمای کلی بخش Section Overview

  • متغیر چیست؟ What is a variable?

  • اعلان و مقداردهی اولیه متغیرها Declaring and Initializing Variables

  • اعلان و مقداردهی اولیه متغیرها Declaring and Initializing Variables

  • متغیرهای جهانی Global Variables

  • C++ توکار انواع اولیه C++ Built-in Primitive Types

  • اندازه یک متغیر چقدر است (sizeof) What is the Size of a Variable (sizeof)

  • ثابت چیست؟ What is a Constant?

  • اعلان و استفاده از ثابت ها Declaring and Using Constants

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 06 Section 06 Quiz

آرایه ها و بردارها Arrays and Vectors

  • نمای کلی بخش Section Overview

  • آرایه چیست؟ What is an Array?

  • اعلان و راه اندازی آرایه ها Declaring and Initializing Arrays

  • دسترسی و اصلاح عناصر آرایه Accessing and Modifying Array Elements

  • اعلام، مقداردهی اولیه و دسترسی به یک آرایه Declaring, Initializing and Accessing an Array

  • آرایه های چند بعدی Multidimensional Arrays

  • اعلام و مقداردهی بردارها Declaring and Initializing Vectors

  • دسترسی و اصلاح عناصر برداری Accessing and Modifying Vector Elements

  • اعلام، مقداردهی اولیه و دسترسی به بردارها Declaring, Initializing and Accessing Vectors

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 07 Section 07 Quiz

بیانیه ها و اپراتورها Statements and Operators

  • نمای کلی بخش Section Overview

  • عبارات و بیانیه ها Expressions and Statements

  • استفاده از اپراتورها Using Operators

  • اپراتور واگذاری The Assignment Operator

  • عملگرهای حسابی Arithmetic Operators

  • با استفاده از عملگر واگذاری Using the Assignment Operator

  • با استفاده از عملگرهای حسابی Using the Arithmetic Operators

  • اپراتورهای افزایش و کاهش Increment and Decrement Operators

  • عبارات و تبدیل های ترکیبی Mixed Expressions and Conversions

  • تست برای برابری Testing for Equality

  • اپراتورهای رابطه ای Relational Operators

  • عملگرهای منطقی Logical Operators

  • اپراتورهای واگذاری مرکب Compound Assignment Operators

  • اولویت اپراتور Operator Precedence

  • عملگرهای منطقی و اولویت عملگر - آیا می توانید کار کنید؟ Logical Operators and Operator Precedence - Can you work?

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 08 Section 08 Quiz

کنترل جریان برنامه Controlling Program Flow

  • نمای کلی بخش Section Overview

  • اگر بیانیه if Statement

  • اگر بیانیه - آیا می توانید رانندگی کنید؟ If Statement - Can you Drive?

  • اگر غیر از بیانیه if else Statement

  • بیانیه If-Else - آیا می توانید رانندگی کنید؟ If-Else Statement - Can you Drive?

  • Nested if Statements Nested if Statements

  • Nested If Statements - آیا می توانید رانندگی کنید؟ Nested If Statements - Can you Drive?

  • بیانیه مورد سوئیچ switch-case Statement

  • بیانیه سوئیچ - روز هفته Switch Statement - Day of the Week

  • اپراتور مشروط Conditional Operator

  • حلقه زدن Looping

  • برای حلقه for Loop

  • حلقه For - مجموع اعداد صحیح فرد For loop - Sum of Odd Integers

  • مبتنی بر محدوده برای حلقه range-based for Loop

  • استفاده از حلقه for مبتنی بر محدوده Using the range-based for loop

  • در حالی که حلقه while Loop

  • در حالی که ورزش حلقه While loop exercise

  • انجام while حلقه do while Loop

  • ادامه بده و بشکن continue and break

  • حلقه های بی نهایت Infinite Loops

  • حلقه های تو در تو Nested Loops

  • حلقه های تودرتو - مجموع حاصلضرب همه جفت عناصر برداری Nested Loops - Sum of the Product of all Pairs of Vector Elements

  • چالش بخش Section Challenge

  • بخش چالش - راه حل قسمت 1 Section Challenge - Solution Part 1

  • بخش چالش - راه حل قسمت 2 Section Challenge - Solution Part 2

  • آزمون بخش 09 ​Section 09 Quiz

شخصیت ها و رشته ها Characters and Strings

  • نمای کلی بخش Section Overview

  • توابع کاراکتر Character Functions

  • رشته های C-Style C-Style Strings

  • کار با رشته های سبک C Working with C-style Strings

  • با استفاده از رشته های سبک C Using C-style Strings

  • رشته های C++ C++ Strings

  • کار با رشته های C++ Working with C++ Strings

  • استفاده از رشته های C++ - تمرین 1 Using C++ Strings - Exercise 1

  • استفاده از رشته های C++ - تمرین 2 Using C++ Strings - Exercise 2

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 10 ​Section 10 Quiz

  • تکلیف چالشی - هرم حروف Challenge Assignment - Letter Pyramid

کارکرد Functions

  • نمای کلی بخش Section Overview

  • یک تابع چیست؟ What is a Function?

  • استفاده از توابع از کتابخانه cmath Using Functions from the cmath Library

  • تعریف تابع Function Definition

  • نمونه های اولیه تابع Function Prototypes

  • پارامترهای تابع و بیانیه بازگشت Function Parameters and the return Statement

  • توابع و نمونه های اولیه - تبدیل دما Functions and Prototypes - Converting Temperatures

  • مقادیر آرگومان پیش فرض Default Argument Values

  • استفاده از مقادیر آرگومان پیش فرض - لیست مواد غذایی Using Default Argument Values - Grocery List

  • توابع اضافه بار Overloading Functions

  • توابع اضافه بار - محاسبه مساحت Overloading Functions - Calculating Area

  • انتقال آرایه به توابع Passing Arrays to Functions

  • ارسال آرایه ها به توابع - چاپ لیست مهمان Passing Arrays to Functions - Print a Guest List

  • از مرجع عبور کنید Pass by Reference

  • استفاده از Pass by Reference - چاپ فهرست مهمان Using Pass by Reference - Print a Guest List

  • قوانین محدوده Scope Rules

  • فراخوانی تابع چگونه کار می کند؟ How do Function Calls Work?

  • توابع درون خطی inline Functions

  • توابع بازگشتی Recursive Functions

  • پیاده سازی یک تابع بازگشتی - صرفه جویی در یک پنی Implementing a Recursive Function - Save a Penny

  • چالش بخش Section Challenge

  • بخش چالش-راه حل Section Challenge-Solution

  • آزمون بخش 11 Section 11 Quiz

اشاره گرها و مراجع Pointers and References

  • نمای کلی بخش Section Overview

  • اشاره گر چیست؟ What is a Pointer?

  • اعلام اشاره گر Declaring Pointers

  • دسترسی به آدرس اشاره گر و ذخیره آدرس در یک اشاره گر Accessing the Pointer Address and Storing Address in a Pointer

  • عدم ارجاع به یک اشاره گر Dereferencing a Pointer

  • تخصیص حافظه پویا Dynamic Memory Allocation

  • رابطه بین آرایه ها و اشاره گرها The Relationship Between Arrays and Pointers

  • حساب اشاره گر Pointer Arithmetic

  • Const و Pointers Const and Pointers

  • انتقال اشاره گر به توابع Passing Pointers to Functions

  • برگرداندن یک اشاره گر از یک تابع Returning a Pointer from a Function

  • مشکلات بالقوه اشاره گر Potential Pointer Pitfalls

  • مرجع چیست؟ What is a Reference?

  • L-values ​​و R-values L-values and R-values

  • با استفاده از CodeLite IDE Debugger Using the CodeLite IDE Debugger

  • خلاصه بخش Section Recap

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 12 ​Section 12 Quiz

OOP - کلاس ها و اشیاء OOP - Classes and Objects

  • نمای کلی بخش Section Overview

  • برنامه نویسی شی گرا چیست؟ What is Object-Oriented Programming?

  • کلاس ها و اشیا چیست؟ What are Classes and Objects?

  • اعلان کلاس و ایجاد اشیا Declaring a Class and Creating Objects

  • دسترسی به اعضای کلاس Accessing Class Members

  • ایجاد و دسترسی به اشیا Creating and Accessing Objects

  • عمومی و خصوصی public and private

  • پیاده سازی روش های اعضا Implementing Member Methods

  • افزودن متدهای عمومی که به ویژگی های کلاس خصوصی دسترسی دارند Adding public methods that access private class attributes

  • متدهای عمومی بیشتری را به یک کلاس موجود اضافه کنید Add more public methods to an existing class

  • سازندگان و ویرانگرها Constructors and Destructors

  • سازنده پیش فرض The Default Constructor

  • یک سازنده پیش فرض را به یک کلاس موجود اضافه کنید Add a Default Constructor to an Existing Class

  • بارگذاری بیش از حد سازندگان Overloading Constructors

  • یک سازنده Overloaded را به یک کلاس موجود اضافه کنید Add an Overloaded Constructor to an Existing Class

  • لیست های اولیه سازی سازنده Constructor Initialization lists

  • تفویض اختیار سازنده Delegating Constructors

  • پارامترهای سازنده و مقادیر پیش فرض Constructor Parameters and Default Values

  • سازنده کپی Copy Constructor

  • یک Copy Constructor به یک کلاس موجود اضافه کنید Add a Copy Constructor to an Existing Class

  • کپی کردن سطحی با سازنده کپی Shallow Copying with the Copy Constructor

  • کپی عمیق با سازنده کپی Deep Copying with the Copy Constructor

  • سازندگان را حرکت دهید Move Constructors

  • اشاره گر "این". The 'this' Pointer

  • استفاده از const با کلاس ها Using const with Classes

  • اعضای کلاس استاتیک Static Class Members

  • ساختارها در مقابل کلاس ها Structs vs Classes

  • دوستان یک کلاس Friends of a class

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 13 ​Section 13 Quiz

اضافه بار اپراتور Operator Overloading

  • نمای کلی بخش Section Overview

  • Overloading اپراتور چیست؟ What is Operator Overloading?

  • بارگذاری بیش از حد اپراتور واگذاری (کپی) Overloading the Assignment Operator (copy)

  • بارگذاری بیش از حد اپراتور واگذاری (حرکت) Overloading the Assignment Operator (move)

  • بارگذاری بیش از حد اپراتورها به عنوان توابع عضو Overloading Operators as Member Functions

  • اضافه بار اپراتور به عنوان توابع عضو Operator Overloading as Member Functions

  • بارگذاری بیش از حد اپراتورها به عنوان توابع جهانی Overloading Operators as Global Functions

  • اضافه بار اپراتور به عنوان توابع غیر عضو Operator Overloading as Non-member Functions

  • بارگذاری بیش از حد اپراتورهای درج و استخراج جریان Overloading the Stream Insertion and Extraction Operators

  • بارگذاری بیش از حد اپراتور اپراتور درج جریان Operator Overloading the Stream Insertion Operator

  • چالش بخش Section Challenge

  • بخش چالش - راه حل 1 Section Challenge - Solution 1

  • بخش چالش - راه حل 2 Section Challenge - Solution 2

  • آزمون بخش 14 Section 14 Quiz

وراثت Inheritance

  • نمای کلی بخش Section Overview

  • ارث چیست؟ What is Inheritance?

  • اصطلاحات و نشانه گذاری Terminology and Notation

  • وراثت در مقابل ترکیب Inheritance vs. Composition

  • استخراج کلاس ها از کلاس های موجود Deriving Classes from Existing Classes

  • اعضای محافظت شده و دسترسی به کلاس Protected Members and Class Access

  • سازندگان و ویرانگرها Constructors and Destructors

  • انتقال آرگومان ها به سازندگان کلاس پایه Passing Arguments to Base Class Constructors

  • Copy/Move Constructors and Operator = با کلاس های مشتق شده Copy/Move Constructors and Operator = with Derived Classes

  • تعریف مجدد روش های کلاس پایه Redefining Base Class Methods

  • ارث چندگانه Multiple Inheritance

  • مثال حساب های به روز شده The Updated Accounts Example

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 15 ​Section 15 Quiz

پلی مورفیسم Polymorphism

  • نمای کلی بخش Section Overview

  • پلی مورفیسم چیست؟ What is Polymorphism?

  • استفاده از یک نشانگر کلاس پایه Using a Base Class Pointer

  • توابع مجازی Virtual Functions

  • ویرانگرهای مجازی Virtual Destructors

  • با استفاده از Override Specifier Using the Override Specifier

  • با استفاده از Final Specifier Using the Final Specifier

  • استفاده از مراجع کلاس پایه Using Base Class References

  • توابع مجازی خالص و کلاس های انتزاعی Pure Virtual Functions and Abstract Classes

  • کلاس های انتزاعی به عنوان رابط Abstract Classes as Interfaces

  • چالش بخش Section Challenge

  • بخش چالش - راه حل قسمت 1 Section Challenge - Solution Part 1

  • بخش چالش - راه حل قسمت 2 Section Challenge - Solution Part 2

  • چالش بخش - راه حل نهایی Section Challenge - Final Solution

  • آزمون بخش 16 Section 16 Quiz

اشاره گرهای هوشمند Smart Pointers

  • نمای کلی بخش Section Overview

  • برخی از مشکلات با اشاره گرهای خام Some Issues with Raw Pointers

  • اشاره گر هوشمند چیست؟ مالکیت و RAII What is a Smart Pointer? Ownership and RAII

  • اشاره گرهای منحصر به فرد Unique Pointers

  • اشاره گرهای مشترک Shared Pointers

  • اشاره گرهای ضعیف Weak Pointers

  • حذف کننده های سفارشی Custom Deleters

  • چالش بخش 1 Section Challenge 1

  • بخش چالش 1 - راه حل Section Challenge 1 - Solution

  • آزمون بخش 17 Section 17 Quiz

رسیدگی به استثنا Exception Handling

  • نمای کلی بخش Section Overview

  • مفاهیم اساسی و یک مثال ساده: تقسیم بر صفر Basic Concepts and a Simple Example: Dividing by Zero

  • پرتاب یک استثنا از یک تابع Throwing an Exception from a Function

  • رسیدگی به استثناهای متعدد Handling Multiple Exceptions

  • Stack Unwinding و نحوه عملکرد آن Stack Unwinding and How it Works

  • ایجاد کلاس های استثنایی تعریف شده توسط کاربر Creating User-Defined Exception Classes

  • استثناهای سطح کلاس Class Level Exceptions

  • سلسله مراتب کلاس C++ std::exception The C++ std::exception Class Hierarchy

  • چالش بخش Section Challenge

  • بخش چالش - راه حل Section Challenge - Solution

  • آزمون بخش 18 Section 18 Quiz

I/O و Streams I/O and Streams

  • نمای کلی بخش Section Overview

  • فایل ها، جریان ها و I/O Files, Streams and I/O

  • دستکاری های جریان Stream Manipulators

  • دستکاری جریان - بولی Stream Manipulators - boolean

  • دستکاری جریان - اعداد صحیح Stream Manipulators - integers

  • دستکاری جریان - نقطه شناور Stream Manipulators - floating point

  • دستکارهای جریان - تراز و پر کنید Stream Manipulators - align and fill

  • چالش بخش 1 Section Challenge 1

  • بخش چالش 1 - راه حل Section Challenge 1 - Solution

  • خواندن از یک فایل متنی Reading from a Text File

  • خواندن از یک فایل متنی - نسخه نمایشی زنده - قسمت 1 Reading from a Text File - Live Demo - Part 1

  • خواندن از یک فایل متنی - نسخه نمایشی زنده - قسمت 2 Reading from a Text File - Live Demo - Part 2

  • خواندن یک فایل متنی Reading a text file

  • چالش بخش 2 Section Challenge 2

  • بخش چالش 2 - راه حل Section Challenge 2 - Solution

  • چالش بخش 3 Section Challenge 3

  • بخش چالش 3 - راه حل Section Challenge 3 - Solution

  • نوشتن در یک فایل متنی Writing to a Text File

  • نوشتن در یک فایل متنی - نسخه نمایشی زنده Writing to a Text File - Live Demo

  • چالش بخش 4 Section Challenge 4

  • بخش چالش 4 - راه حل Section Challenge 4 - Solution

  • استفاده از String Streams Using String Streams

  • مکان های فایل را با برخی از IDE های محبوب ثبت کنید File locations with some Popular IDEs

  • آزمون بخش 19 Section 19 Quiz

کتابخانه الگوی استاندارد (STL) The Standard Template Library (STL)

  • نمای کلی بخش Section Overview

  • STL چیست؟ What is the STL?

  • برنامه نویسی عمومی با ماکروها Generic Programming with Macros

  • برنامه نویسی عمومی با قالب های تابع Generic Programming with Function Templates

  • برنامه نویسی عمومی با قالب های کلاس Generic Programming with Class Templates

  • ایجاد یک کلاس الگوی آرایه عمومی Creating a Generic Array Template Class

  • مقدمه ای بر کانتینرهای STL Introduction to STL Containers

  • مقدمه ای بر STL Iterators Introduction to STL Iterators

  • معرفی Iterators - نسخه ی نمایشی Introduction to Iterators - Demo

  • مقدمه ای بر الگوریتم های STL Introduction to STL Algorithms

  • مقدمه ای بر الگوریتم ها - نسخه ی نمایشی Introduction to Algorithms - Demo

  • Sequence Container - Array Sequence Container - Array

  • Sequence Containers - Vector Sequence Containers - Vector

  • Sequence Containers - Deque Sequence Containers - Deque

  • چالش بخش 1 Section Challenge 1

  • بخش چالش 1 - راه حل Section Challenge 1 - Solution

  • Sequence Containers - List and Forward List Sequence Containers - List and Forward List

  • چالش بخش 2 Section Challenge 2

  • بخش چالش 2 - راه حل Section Challenge 2 - Solution

  • ظروف انجمنی - مجموعه Associative Containers - Sets

  • کانتینرهای انجمنی - نقشه ها Associative Containers - Maps

  • چالش بخش 3 Section Challenge 3

  • بخش چالش 3 - راه حل Section Challenge 3 - Solution

  • آداپتورهای کانتینر - پشته Container Adaptors - Stack

  • آداپتورهای کانتینر - صف Container Adaptors - Queue

  • چالش بخش 4 Section Challenge 4

  • بخش چالش 4 - راه حل Section Challenge 4 - Solution

  • آداپتورهای کانتینر - صف اولویت Container Adaptors - Priority Queue

  • آزمون بخش 20 Section 20 Quiz

عبارات لامبدا Lambda Expressions

  • نمای کلی بخش Section Overview

  • انگیزه Motivation

  • ساختار یک عبارت لامبدا Structure of a Lambda Expression

  • عبارات لامبدا بدون تابعیت Stateless Lambda Expressions

  • نسخه ی نمایشی عبارات لامبدا بدون حالت - قسمت 1 Stateless Lambda Expressions Demo - Part 1

  • نسخه ی نمایشی عبارات لامبدا بدون حالت - قسمت 2 Stateless Lambda Expressions Demo - Part 2

  • عبارات Stateful Lambda Stateful Lambda Expressions

  • حالت نمایشی عبارات لامبدا - قسمت 1 Stateful Lambda Expressions Demo - Part1

  • نسخه نمایشی Stateful Expressions Lambda - Part2 Stateful Lambda Expressions Demo - Part2

  • Lambdas و STL Lambdas and the STL

بخش پاداش - با استفاده از کد ویژوال استودیو Bonus Section - Using Visual Studio Code

  • نمای کلی بخش Section Overview

  • نصب VSCode در ویندوز Installing VSCode on Windows

  • ساخت و اجرای برنامه های ++C با VSCode در ویندوز Building and Running C++ Programs with VSCode on Windows

  • اشکال زدایی برنامه های C++ با VSCode در ویندوز Debugging C++ Programs with VSCode on Windows

  • استفاده از کد منبع دوره با VSCode در ویندوز Using the Course Source Code with VSCode on Windows

  • نصب VSCode در Mac OSX Installing VSCode on Mac OSX

  • ساخت و اجرای برنامه های C++ با VSCode در Mac OSX Building and Running C++ Programs with VSCode on Mac OSX

  • اشکال زدایی برنامه های C++ با VSCode در مک Debugging C++ Programs with VSCode on Mac

  • استفاده از کد منبع دوره با VSCode در مک Using the Course Source Code with VSCode on Mac

  • نصب VSCode در لینوکس Installing VSCode on Linux

  • ساخت و اجرای برنامه های C++ با VSCode در لینوکس Building and Running C++ Programs with VSCode on Linux

  • اشکال زدایی برنامه های C++ با VSCode در لینوکس Debugging C++ Programs with VSCode on Linux

  • استفاده از کد منبع دوره با VSCode در لینوکس Using the Course Source Code with VSCode on Linux

بخش پاداش - شمارش ها Bonus Section - Enumerations

  • نمای کلی بخش Section Overview

  • انگیزه Motivation

  • ساختار یک شمارش The Structure of an Enumeration

  • شمارش های بدون محدوده Unscoped Enumerations

  • شمارش محدوده Scoped Enumerations

آرشیو شده - ویدیوهای نصب قدیمی ARCHIVED - OLD INSTALLATION VIDEOS

  • نمای کلی نصب و راه اندازی Installation and Setup Overview

  • نصب کامپایلر C++ در ویندوز Installing the C++ Compiler on Windows

  • نصب CodeLite در ویندوز Installing CodeLite on Windows

  • پیکربندی CodeLite در ویندوز Configuring CodeLite on Windows

  • نصب کامپایلر C++ در Mac OSX Installing the C++ Compiler on Mac OSX

  • نصب CodeLite در Mac OSX Installing CodeLite on Mac OSX

  • پیکربندی CodeLite در Mac OSX Configuring CodeLite on Mac OSX

  • نصب CodeLite در لینوکس اوبونتو Installing CodeLite on Ubuntu Linux

  • پیکربندی CodeLite در لینوکس اوبونتو Configuring CodeLite on Ubuntu Linux

  • ایجاد یک الگوی پیش فرض پروژه CodeLite (همه نسخه ها) Creating a Default CodeLite Project Template (All Versions)

  • با استفاده از منابع دوره کد منبع گنجانده شده Using the Included Source Code Course Resources

اطلاعات اضافی - کد منبع و موارد دیگر Extra Information - Source code, and other stuff

  • کد منبع برای همه بخش ها Source Code for all Sections

بخش پاداش - از جمله اسلایدها Bonus Section - including Slides

  • جایزه - اسلایدهای دوره و کتاب الکترونیکی برنامه نویسی رایگان Bonus - Course Slides and Free Programming EBook

نمایش نظرات

آموزش شروع برنامه نویسی C++ - از مبتدی تا فراتر
جزییات دوره
46 hours
305
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
244,006
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Tim Buchalka's Learn Programming Academy Tim Buchalka's Learn Programming Academy

برنامه نویسان و معلمان حرفه ای - 1.75 میلیون دانش آموز

Dr Frank Mitropoulos Dr Frank Mitropoulos

دانشمند و مدرس کامپیوتر با تجربه