آموزش کلاس کارشناسی ارشد C++20: از اصول اولیه تا پیشرفته

The C++20 Masterclass : From Fundamentals to Advanced

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: C++ مدرن را از ابتدا تا پیشرفته در زبان انگلیسی ساده بیاموزید و به آن مسلط شوید: C++11، C++14، C++17، C++20 و بیشتر! C++ 20 Ranges Concepts Modules Coroutines C++ 17 C++ 14 C++ 11 C++98 Operator كلاسهای همپوشانی متغیرها و انواع داده ها. رشته ها بهینه سازی مقدار بازگشتی و خیلی بیشتر! پیش نیازها: درایو قوی و تمایل به یادگیری دسترسی به رایانه شخصی یا مک با اتصال به اینترنت بقیه را به شما آموزش خواهم داد.

به C++ 20 Masterclas خوش آمدید! دوره ای طراحی شده برای آموزش پیشرفته C++ مدرن از ابتدا تا موضوعات بسیار پیشرفته، موضوعاتی که در زمینه هایی که C++ به طور گسترده در دوران مدرن استفاده می شود، نیاز دارید. آیا می خواهید یک توسعه دهنده بازی مطمئن باشید؟ برنامه‌های کاربردی با کارایی بالا در بخش مالی، ماژول‌های نرم‌افزار قدرتمندی که در بالای آن‌ها سیستم‌های سرور، زیرساخت‌های شبکه، سیستم‌های پایگاه داده، حتی خود سیستم‌عامل‌ها بر روی آنها اجرا می‌شوند، چطور؟ خوب C++ زبان غالبی است که در این زمینه ها و بسیاری موارد دیگر استفاده می شود! C++ زبان برنامه نویسی است حتی سایر زبان ها و فناوری های برنامه نویسی مانند NodeJS، PHP، Java، JavaScript و بسیاری دیگر که با آنها نوشته شده است.

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

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

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

  • C++20

  • C++17

  • C++14

  • C++11

  • C++98

  • محدوده ها

  • ماژول ها

  • مفاهیم

  • کوروتین ها

  • کلاس ها

  • متغیرها و انواع داده

  • توابع

  • ارث

  • چند شکلی

  • درست بودن Const

  • متغیرهای استاتیک

  • مدت زمان ذخیره سازی

  • پیوند

  • قانون یک تعریف

  • بارگذاری بیش از حد اپراتور

  • زیرساخت مقایسه سه طرفه

  • عملکردی مانند موجودیت ها

  • معناشناسی حرکت

  • ظرف‌ها، تکرارکننده‌ها و الگوریتم‌های STL

  • و خیلی بیشتر!

در پایان دوره، آماده استفاده از C++ مدرن با استانداردهای C++ 11، C++14، C++17 و C++ 20 خواهید بود، اما ابزارهای لازم برای خواندن را نیز خواهید داشت. ، درک کنید و با پایه های کد C++ قدیمی تر با C++98 و پایین تر کار کنید، و بدون توجه به استاندارد C++ در حال استفاده، مهارت های C++ شما را در طیف وسیعی از زمینه ها ارزشمند می کند.

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

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

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

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


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

خوش آمدی Welcome

  • خوش آمدی Welcome

  • بیشترین بهره را از دوره ببرید Getting the most out of the course

  • کد منبع، اسلایدها و سوالات [مهم] Source code, Slides and Questions [IMPORTANT]

تنظیم محیط - [ویندوز - لینوکس - مک] Environment Setup - [Windows - Linux - Mac]

  • ابزارها The Tools

تنظیم محیط - ویندوز Environment setup - Windows

  • مقدمه راه اندازی ویندوز Windows setup introduction

  • VS Code را در ویندوز نصب و راه اندازی کنید Install and setup VS Code on Windows

  • Microsoft Visual Studio Install - Windows Microsoft Visual Studio Install - Windows

  • راه اندازی کد VS با MSVC VS Code setup with MSVC

  • GCC & Clang - Windows را نصب کنید Install GCC & Clang - Windows

  • کد VS را برای GCC - Windows پیکربندی کنید Configure VS Code for GCC - Windows

  • VS Code را برای Clang - Windows پیکربندی کنید Configure VS Code for Clang - Windows

  • پروژه قالب ویندوز - همه کامپایلرها Windows template project - All compilers

  • راه اندازی محیط توسعه ویندوز - خلاصه Windows Development Environment setup - Summary

راه اندازی محیط - لینوکس Environment setup - Linux

  • راه اندازی محیط لینوکس - مقدمه Linux environment setup - Introduction

  • VS Code را در لینوکس نصب و راه اندازی کنید Install & setup VS Code on Linux

  • GCC را روی لینوکس نصب کنید Install GCC on Linux

  • کد VS را برای GCC - Linux پیکربندی کنید Configure VS Code for GCC - Linux

  • Clang را روی لینوکس نصب کنید Install Clang on Linux

  • کد VS را برای Clang - Linux پیکربندی کنید Configure VS Code for Clang - Linux

  • پروژه قالب - همه کامپایلرها - لینوکس Template Project - All compilers - Linux

تنظیم محیط - مک Environment setup - Mac

  • معرفی Introduction

  • کد ویژوال استودیو را نصب و راه اندازی کنید Install and Setup Visual Studio Code

  • GCC و Clang را نصب کنید Install GCC and Clang

  • کد VS را برای gcc پیکربندی کنید Configure VS Code for gcc

  • کد VS را برای Clang پیکربندی کنید Configure VS Code for Clang

  • پروژه الگو - همه کامپایلرها Template Project - All compilers

تنظیم محیط - گزینه های دیگر Environmet setup - Other options

  • کامپایلرهای آنلاین Online Compilers

  • درباره سایر IDE ها About other IDEs

  • بنابراین شما فکر می کنید بیشتر در مورد C++ می دانید، بیایید دریابیم! So you think you know more about C++, let's find out!

غواصی در Diving In

  • الگوی پروژه Project Template

  • اولین برنامه C++ شما Your First C++ Program

  • نظرات Comments

  • خطاها Errors

  • بیانیه ها و توابع Statements and Functions

  • ورودی و خروجی داده Data input and output

  • خروجی داده Data Output

  • مدل اجرای برنامه C++ C++ Program Execution Model

  • زبان اصلی C++ در مقابل کتابخانه استاندارد در مقابل STL C++ core language Vs Standard library Vs STL

  • ساختار برنامه Program Structure

  • برنامه می خواهد بداند شما کجا زندگی می کنید The program wants to know where you live

  • خلاصه Summary

متغیرها و انواع داده ها Variables and Data Types

  • معرفی Introduction

  • سیستم های اعداد Number Systems

  • اعداد و اعداد صحیح Decimals and Integers

  • اصلاح کننده های عدد صحیح Integer Modifiers

  • اعداد کسری Fractional Numbers

  • متغیرها را اعلام و مقداردهی اولیه کنید Declare and initialize variables

  • بولین ها Booleans

  • شخصیت ها و متن Characters And Text

  • خودکار Auto

  • تکالیف Assignments

  • نمایش داده ها در حافظه Data Representation in memory

  • سیستم های اعداد Number systems

  • خودکار Auto

  • بیایید ببینیم چگونه از انواع داده های خود استفاده می کنید Let's see how you'd use your data types

  • خلاصه Summary

عملیات روی داده Operations on Data

  • معرفی Introduction

  • عملیات اساسی Basic Operations

  • تقدم و تداعی Precedence and Associativity

  • افزایش و کاهش پیشوند/پسوند Prefix/Postfix Increment & Decrement

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

  • اپراتورهای رابطه ای RelationalOperators

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

  • قالب بندی خروجی Output formatting

  • محدودیت های عددی Numeric Limits

  • توابع ریاضی Math Functions

  • مساحت یک شش ضلعی Area of a hexagon

  • انواع انتگرال عجیب Weird Integral Types

  • سلسیوس به فارنهایت Celcius to Fahrenheit

  • مساحت و حجم یک جعبه Area and Volume of a Box

  • بنابراین فکر می کنید بیشتر در مورد C++ می دانید. بیایید دریابیم So you think you know more about C++. Let's find out

  • خلاصه Summary

لفظ ها و ثابت ها Literals and Constants

  • معرفی Introduction

  • تحت اللفظی Literals

  • ثابت ها Constants

  • عبارات ثابت Constant Expressions

  • محدود کردن constinit

  • پس فکر می کنید بیشتر در مورد C++ می دانید؟ بیایید دریابیم! So you think you know more about C++? Let's find out!

  • خلاصه Summary

تبدیل داده ها: سرریز و زیر جریان Data Conversions : Overflow & Underflow

  • معرفی Introduction

  • تبدیل داده های ضمنی Implicit Data Conversions

  • تبدیل داده های صریح Explicit Data Conversions

  • سرریز و زیر سرریز Overflow and Underflow

  • پس فکر می کنید کمی بیشتر در مورد C++ می دانید؟ بیایید دریابیم! So you think you know a bit more about C++? Let's find out!

  • خلاصه Summary

اپراتورهای بیتی Bitwise Operators

  • معرفی Introduction

  • چاپ اعداد صحیح به صورت باینری Printing Integers in Binary

  • اپراتورهای شیفت Shift Operators

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

  • Comound Bitwise and Assignment Operators Compound Bitwise and Assignment Operators

  • ماسک ها Masks

  • نمونه ماسک Mask Example

  • اطلاعات رنگ بسته بندی Packing Color Information

  • بنابراین شما فکر می کنید که در مورد C++ می دانید؟ بیایید دریابیم! So you think you know moare about C++? Let's find out!

  • خلاصه Summary

طول عمر و محدوده متغیر Variable Lifetime and Scope

  • طول عمر متغیر Variable Lifetime

  • دامنه متغیر Variable Scope

  • بنابراین فکر می کنید کمی بیشتر در مورد C++ می دانید؟ بیایید دریابیم! So you think you know a little more about C++? Let's find out!

کنترل جریان Control Flow

  • معرفی Introduction

  • اگر بیانیه ها If Statements

  • در غیر این صورت اگر Else If

  • تعویض Switch

  • سالهای کبیسه Leap Years

  • ارزیابی های اتصال کوتاه Short Circuit Evaluations

  • شرایط منطقی یکپارچه Integral Logic Conditions

  • اپراتورهای سه تایی Ternary Operators

  • اگر constexpr If constexpr

  • اگر با Initializer If with Initializer

  • با Initializer سوئیچ کنید Switch with Initializer

  • محدوده متغیر مورد بازبینی قرار گرفت Variable Scope Revisited

  • Scope را تغییر دهید Switch Scope

  • آیا حتی؟ یا ممکن است عجیب باشد؟ Is it even ? Or could it be odd?

  • آیا درمان را دریافت خواهید کرد؟ Will you get the treatment ?

  • آیا روز معتبر است؟ Is the day valid?

  • یک روز در گذشته شکار کنید Hunt for a day in the past

  • آیا شما کاملا محاصره شده اید؟ Are you completely surrounded?

  • خلاصه Summary

حلقه ها Loops

  • معرفی Introduction

  • برای حلقه For Loop

  • بنابراین فکر می کنید ایده بهتری در مورد حلقه ها در C++ دارید؟ بیایید دریابیم! So you think you have a better idea about loops in C++? Let's find out!

  • میشه 99 رو جمع کنید؟ Can you sum up to 99?

  • برای حلقه: چند اعلان For Loop : Multiple Declarations

  • چاپ حروف بزرگ Print upper case characters

  • اپراتور کاما Comma Operator

  • محدوده مبتنی بر حلقه برای Range Based For Loop

  • در مضرب 3 فیلتر کنید Filter in multiples of 3

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

  • حلقه های بزرگ با خروجی Huge Loops with Output

  • حلقه while انجام دهید Do while loop

  • مضرب 19 Multiples of 19

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

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

  • کاهش حلقه ها Decrementing Loops

  • پرتت میکنم :-) Throwing you off :-)

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

  • شکستن و ادامه دادن Break and Continue

  • ماشین حساب را تعمیر کنید Fix the Calculator

  • برای حلقه با شرط Init For Loop with Init condition

  • تقویم سال Year Calendar

  • خلاصه Summary

آرایه ها Arrays

  • معرفی Introduction

  • اعلان و استفاده از آرایه ها Declaring and using arrays

  • حذف موارد تکراری Eliminating duplicates

  • اندازه یک آرایه Size of an array

  • مجموعه مرتب شده است The collection is sorted

  • آرایه های شخصیت ها Arrays of characters

  • شکار حروف صدادار Hunt for vowels

  • محدوده های آرایه Array Bounds

  • محدوده های آرایه چرا مراقبت؟ Array bounds. Why care?

  • تولید اعداد تصادفی Generating Random Numbers

  • سرگرمی با آرایه های شخصیت: فالگیر V1 Fun with character arrays : Fortune Teller V1

  • چه وجه مشترکی داریم؟ What do we have in common?

  • آرایه های چند بعدی Multi dimensional arrays

  • آرایه های چند بعدی از کاراکترها Multi dimensional arrays of characters

  • سرگرمی با آرایه های چند بعدی از شخصیت ها: فالگیر V2 Fun with multi dimensional arrays of characters : Fortune Teller V2

  • ماشين حساب The Calculator

  • خلاصه Summary

اشاره گرها Pointers

  • معرفی Introduction

  • اعلام و استفاده از اشاره گرها Declaring and using pointers

  • اشاره گر به کاراکتر Pointer to char

  • بنابراین فکر می کنید اکنون در مورد اشاره گرها بیشتر می دانید؟ بیایید دریابیم! So you think you know more about pointers now? Let's find out!

  • آرایه های اشاره گر به کاراکتر Arrays of pointer to char

  • نشانگر const و اشاره گر به const const pointer and pointer to const

  • آرایه نشانگر const به const char Array of const pointer to const char

  • اشاره گرها و آرایه ها Pointers and arrays

  • مرد بزرگ کجا زندگی می کند؟ Where does the big guy live?

  • مبادله داده های آرایه: یک نسخه آزمایشی Swapping array data : A demo

  • حساب اشاره گر: مقدمه Pointer arithmetic : Introduction

  • حساب اشاره گر: ناوبری Pointer Arithmetic : Navigation

  • شوت به جلو Shoot forward

  • محاسبات اشاره گر: فاصله بین عناصر Pointer arithmetic : Distance between elements

  • در جستجوی نمو: پسر کوچولو! Finding Nemo : The little guy!

  • محاسبات اشاره گر: مقایسه اشاره گرها Pointer Arithmetic : Comparing Pointers

  • مبادله داده های آرایه: محاسبات اشاره گر Swapping array data : Pointer arithmetic

  • نقشه حافظه برنامه بازبینی شد Program Memory Map Revisited

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

  • اشاره گرهای آویزان Dangling Pointers

  • بنابراین فکر می کنید کمی بیشتر در مورد نشانگرهای آویزان می دانید؟ بیایید دریابیم! So you think you know a bit more about dangling pointers? Let's find out!

  • وقتی جدید شکست می خورد When new fails

  • ایمنی نشانگر تهی Null pointer safety

  • نشت های حافظه Memory Leaks

  • آرایه های تخصیص دینامیک Dynamically allocated arrays

  • آنها را ادغام کنید! Merge them!

  • خلاصه Summary

منابع References

  • معرفی Introduction

  • اعلام و استفاده از مراجع Declaring and using references

  • مرجع خود را اعلام کنید Declare your own reference

  • مقایسه اشاره گرها و مراجع Comparing pointers and references

  • انتخاب شما چیست: اشاره گرها؟ منابع ؟ What's your pick : pointers ? References ?

  • مراجع و نتیجه References and const

  • مرور مراجع برای انجام کارها Going through references to do stuff

  • ارجاعات با محدوده مبتنی بر حلقه ها References with Range based for loops

  • خلاصه Summary

دستکاری کاراکتر و رشته ها Character manipulation and strings

  • معرفی Introduction

  • دستکاری شخصیت Character Manipulation

  • چه تعداد از آن ها آنجا هستند؟ How many of them are there?

  • آنها را شکار کنید و آنها را جایگزین کنید! Hunt them down and replace them!

  • دستکاری رشته C C-string manipulation

  • C-String الحاق و کپی C-String concatenation and copy

  • معقول ساختن چرندیات Making sense of the gibrish

  • معرفی std::string Introducing std::string

  • اعلان و استفاده از std::string Declaring and using std::string

  • الحاق std::string Concatenating std::string

  • ساخت از قطعات خام! Build from raw pieces!

  • دسترسی به کاراکترها در std::string Accessing Characters in std::string

  • std:: اندازه و ظرفیت رشته std::string size and capacity

  • اصلاح std::string Modifying std::string

  • مقایسه std::string's Comparing std::string's

  • چه کسی بزرگترین است؟ Who's the greatest?

  • مقایسه با std::string::compare() Comparing with std::string::compare()

  • std::string: جایگزین کردن، کپی کردن، تغییر اندازه و تعویض std::string : Replacing, copying, resizing and swapping

  • جستجوی std::string Searching std::string

  • یافتن کبریت Finding matches

  • تبدیل std::string به/از اعداد Transforming std::string to/from numbers

  • سکانس های فرار Escape sequences

  • لفظ رشته ای خام Raw string literals

  • فرار از چیزها Escaping stuff

  • رشته های کپی شده Copied Strings

  • رشته ها دیوانه شدند! Strings gone crazy!

  • std::string_view std::string_view

  • خلاصه Summary

کارکرد Functions

  • معرفی Introduction

  • دست اول در توابع C++ First hand on C++ Functions

  • ارقام را جمع کنید Sum up the digits

  • اعلان و تعاریف تابع Function declaration and definitions

  • نشان دادن شانس! Showing the odds!

  • چند فایل: مرحله Linker را بازبینی کنید Multiple Files : Revisition the Linker stage

  • پالیندروم ها! Palindromes!

  • از ارزش عبور کنید Pass by value

  • عبور از ارزش ثابت Pass by const value

  • از نشانگر عبور کنید Pass by pointer

  • با اشاره گر به const عبور کنید Pass by pointer to const

  • نشانگر const را به const منتقل کنید Pass by const pointer to const

  • بزرگنمایی پارامترهای تابع Zooming in on function parameters

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

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

  • اشاره گرها، ارجاعات و نتیجه: شما را دور انداختم! Pointers, references and const : Throwing you off!

  • عبور پارامترهای تابع: خلاصه Passing function parameters :Summary

  • چه کسی شخصیت دارد؟ Who has character?

  • پارامترهای تابع آرایه Array function parameters

  • مرتب سازی درج - چالش برانگیز Insertion sort - Challenging

  • پارامترهای تابع آرایه با اندازه Sized array function parameters

  • ارسال آرایه های اندازه با مرجع Passing sized arrays by reference

  • پارامترهای تابع آرایه: شما را دور می اندازد! Array function parameters : Throwing you off!

  • پارامتر تابع آرایه چند بعدی Multi dimensional array function parameter

  • آرگومان های تابع پیش فرض Default function arguments

  • تبدیل های ضمنی Implicit Conversions

  • تبدیل ضمنی با مراجع Implicit conversions with references

  • تبدیل ضمنی با اشاره گر Implicit conversions with pointers

  • تبدیل های ضمنی با پارامترهای تابع: شما را دور می اندازد! Implicit conversions with function parameters : Throwing you off!

  • پارامترهای string_view string_view Parameters

  • تبدیل ضمنی از std::string_view به std::string Implicit conversions from std::string_view to std::string

  • توابع constexpr constexpr functions

  • توابع consteval consteval functions

  • توابع consteval: شما را دور می اندازد! consteval functions : Throwing you off!

  • حداکثر مشکل جمع زیر دنباله - چالش برانگیز. Maximum sub-sequence sum problem - Challenging.

  • خلاصه Summary

نام مستعار Enums و Type Enums and Type aliases

  • معرفی Introduction

  • انواع شمارش شده (کلاس Enum) Enumerated types (Enum Class)

  • روز هفته Day of the week

  • کلاس های Enum: شما را دور می اندازد Enum classes : Throwing you off

  • با استفاده از enum using enum

  • میراث برشمرده شده انواع Legacy enumerated types

  • Enums: شما را دور انداختم! Enums : Throwing you off!

  • نام مستعار را تایپ کنید Type aliases

  • خلاصه Summary

استدلال به اصل Arguments to main

  • معرفی Introduction

  • آرگومان ها را بگیرید و استفاده کنید Grab and use the arguments

  • ماشین حساب V1 Calculator V1

  • ماشین حساب V2 Calculator V2

  • خلاصه Summary

خارج کردن چیزها از توابع Getting things out of functions

  • معرفی Introduction

  • پارامترهای ورودی و خروجی Input and output parameters

  • حتی مبالغ Even sums

  • بازگشت از توابع (بر اساس مقدار) Returning from functions (by value)

  • بازگشت با مرجع Returning by reference

  • بازگشت با اشاره گر Returning by pointer

  • چیزهای برگشتی: شما را بیرون می اندازد! Returning stuff : Throwing you off!

  • نشانگر عنصر آرایه در حال بازگشت Returning array element pointer

  • به هم ریختیم! We messed up!

  • کسر نوع خودکار برهنه Bare auto type deduction

  • کسر نوع بازگشت تابع Function return type deduction

  • کسر نوع را با مراجع برگردانید Return type deduction with references

  • تعاریف تابع با کسر نوع برگشتی Function definitions with return type deduction

  • نوع کسر: شما را دور می اندازد! Type deductions : Throwing you off!

  • خروجی اختیاری از توابع Optional output from functions

  • معرفی std:: اختیاری Introducing std::optional

  • خروجی اختیاری با std::optional Optional output with std::optional

  • داده های اختیاری: شما را دور می اندازد! Optional data : Throwing you off!

  • خلاصه Summary

عملکرد بیش از حد Function Overloading

  • معرفی Introduction

  • اضافه بار با پارامترهای مختلف Overloading with different parameters

  • بارگذاری بیش از حد با پارامترهای اشاره گر Overloading with pointer parameters

  • اضافه بار با پارامترهای مرجع Overloading with reference parameters

  • double، std::string و const char* overloads : برویم! double, std::string and const char* overloads : Let's go!

  • اضافه بار با پارامترهای const بر اساس مقدار Overloading with const parameters by value

  • بارگذاری بیش از حد با نشانگر const و نشانگر به پارامترهای const Overloading with const pointer and pointer to const parameters

  • بارگذاری بیش از حد با مراجع const Overloading with const references

  • بارگذاری بیش از حد با پارامترهای پیش فرض Overloading with default parameters

  • اضافه بارهای دیوانه: شما را دور می اندازد! Crazy overloads : Throwing you off!

  • خلاصه Summary

توابع لامبدا Lambda Functions

  • معرفی Introduction

  • اعلان و استفاده از توابع لامبدا Declaring and using lambda functions

  • گرفتن لیست ها Capture lists

  • همه را در زمینه ضبط کنید Capture all in context

  • لامبداس: پرتت می کنم! Lambdas : Throwing you off!

  • خلاصه Summary

توابع: نامناسب Functions : The misfits

  • معرفی Introduction

  • متغیرهای استاتیک Static variables

  • عملکرد ردیابی خود Self Tracking Function

  • سریال عجیب و غریب Odd series

  • توابع درون خطی Inline functions

  • توابع درون خطی: شما را دور می اندازد Inlined functions : Throwing you off

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

  • فاکتوریل Factorial

  • خلاصه Summary

تابع پشته تماس و اشکال زدایی Function call stack and debugging

  • معرفی Introduction

  • پشته تماس The call stack

  • اشکال زدایی برنامه های ++C Debugging C++ applications

  • اشکال زدایی در VS Code Debugging in VS Code

  • اشکال زدایی در CodeLite Debugging in CodeLite

  • اشکال زدایی در مایکروسافت ویژوال استودیو Debugging in Microsoft Visual Studio

  • اشکال زدایی آرایه ها، حلقه ها و اشاره گرها Debugging arrays, loops and pointers

  • خلاصه Summary

قالب های تابع Function Templates

  • معرفی Introduction

  • در حال آزمایش الگوهای تابع Trying out function templates

  • آنها را شکار کنید! Hunt them down!

  • کسر نوع الگو و آرگومان های صریح Template type deduction and explicit arguments

  • کسر نوع الگو: شما را دور می اندازد! Template type deductions : Throwing you off!

  • پارامترهای الگو بر اساس مرجع Template parameters by reference

  • با هم عوض کن Swap'em'up!

  • تخصص قالب Template specialization

  • Find'em const char*'s Find'em const char* 's

  • تخصص‌ها کجا می‌روند: شما را دور می‌اندازند! Where do specializations go : Throwing you off!

  • الگوهای عملکرد با بارگذاری بیش از حد Function templates with overloading

  • const char* قالب تابع بیش از حد بارگذاری می شود const char* function template overloads

  • تخصص های الگوی تابع در مقابل بارهای اضافه: برخی از خواندن های اضافی. Function template specializations Vs Overloads : Some additional reading.

  • قالب های تابع با پارامترهای متعدد Function templates with multiple parameters

  • اعداد را کنار هم بگذارید Put'em numbers together!

  • کسر نوع بازگشت الگو با خودکار Template return type deduction with auto

  • الگوهای عملکرد در چندین فایل: شما را دور می اندازد! Function templates in multiple files : Throwing you off!

  • Decltype و انواع بازده دنباله دار Decltype and trailing return types

  • decltype و trailing بازده انواع : پرتاب شما! decltype and trailing return types : Throwing you off!

  • خودکار Declytpe Declytpe auto

  • آرگومان های پیش فرض Default arguments

  • پارامترهای قالب غیر نوع Non type template parameters

  • مقادیر آنها را پیدا کنید! Find'em values!

  • الگوهای عملکرد خودکار Auto Function Templates

  • الگوهای عملکرد خودکار: شما را دور می اندازد! auto Function Templates : Throwing you off!

  • پارامترهای قالب نامگذاری شده برای Lambdas Named Template Parameters for Lambdas

  • صفات نوع Type traits

  • constexpr if constexpr if

  • خلاصه Summary

C++ 20 Concepts C++ 20 Concepts

  • معرفی Introduction

  • استفاده از مفاهیم Using Concepts

  • اضافه کردن چیزها: شما را دور می اندازد! Adding stuff up : Throwing you off!

  • مفاهیم خود را بسازید Building your own concepts

  • Put'em std::strings با هم! Put'em std::strings together!

  • ساختن مفاهیم: شما را دور انداختم! Making up concepts : Throwing you off!

  • زوم کردن بر روی بند الزامات Zooming in on the requires clause

  • ترکیب مفاهیم: ربط (&&) و جدایی (||) Combining concepts : Conjunction(&&) and Disjunction(||)

  • مفاهیم: شما را دور انداختن! Concepts : Throwing you off!

  • انواع مختلف آنها را کنار هم قرار دهید! Put'em different types together!

  • مفاهیم و خودکار Concepts and auto

  • خلاصه Summary

کلاس ها Classes

  • معرفی Introduction

  • کلاس اول شما Your First Class

  • شما جعبه ساز هستید! You're a box maker!

  • ساختمانی برای فضای دو بعدی! Building for the 2D space!

  • C++ Constructors C++ Constructors

  • سازندگان جعبه Box Constructors

  • امتیازات را بسازید! Construct'em Points!

  • سازنده های پیش فرض Defaulted constructors

  • سازندگان: شما را دور انداختم! Constructors : Throwing you off!

  • تنظیم کننده ها و دریافت کننده ها Setters and Getters

  • چاپ نقطه مانند یک آقا! Point printing like a gentleman!

  • کلاس در چندین فایل Class Across Multiple Files

  • جعبه های خود را به قطعات تقسیم کنید. Split your boxes in parts.

  • ایجاد کلاس ها از طریق IDE ها Creating classes through IDEs

  • نشانگر پیکان فراخوانی Arrow pointer call notation

  • اشاره گر به اشیاء: شما را پرت می کند! Pointers to objects : Throwing you off!

  • ویرانگرها Destructors

  • سفارش تماس های سازنده سازنده Order of Constructor Destructor Calls

  • این اشاره گر The this Pointer

  • تنظیم زنجیره برای نقاط با اشاره گر Setter Chains for Points with pointers

  • زنجیر تنظیم برای امتیاز با مراجع Setter Chains for Points with references

  • ساخت struct

  • struct Vs class: شما را دور می اندازد! struct Vs class : Throwing you off!

  • اندازه اشیاء Size of objects

  • خلاصه Summary

کلاس ها، اشیاء و const Classes, objects and const

  • معرفی Introduction

  • اشیاء const const objects

  • اشیاء Const: شما را دور می اندازد! Const objects : Throwing you off!

  • اشیاء را به عنوان آرگومان های تابع Const کنید Const objects as function arguments

  • استدلال‌های حیله‌آمیز: شما را دور می‌اندازند Tricky arguments : Throwing you off

  • توابع عضو const const member functions

  • رفع نقطه خود را Fixing up your Point

  • گیرنده هایی که به عنوان تنظیم کننده کار می کنند Getters that work as setters

  • یه تیر و دو نشان زدن Kill two birds with one stone

  • اشاره گرها و ارجاعات آویزان در اشیا Dangling pointers and references in objects

  • ارزش‌های بازگشتی حیله‌گر: شما را دور می‌اندازد! Tricky return values : Throwing you off!

  • زوم کردن روی const Zooming in on const

  • متغیرهای عضو قابل تغییر Mutable Member variables

  • اتصالات ساختاریافته Structured Bindings

  • خلاصه Summary

غواصی عمیق در سازنده ها و مقداردهی اولیه Diving deep into constructors and initialization

  • معرفی Introduction

  • پارامترهای پیش فرض برای سازنده ها Default parameters for constructors

  • امتیازهای پیش فرض Default Points

  • چندین مسیر منتهی به رم! Several paths leading to Rome!

  • لیست های آغازگر برای سازنده ها Initializer lists for constructors

  • مانند یک جنتلمن جعبه بسازید! Build Boxes like a gentleman!

  • Initializer لیست های اولیه را در مقابل مقداردهی اولیه کپی عاقلانه اعضا فهرست می کند Initializer lists Vs Member wise copy initialization

  • سازنده های صریح Explicit constructors

  • هیئت سازنده Constructor delegation

  • سازنده تفویض شده برای Box Delegated constructor for Box

  • زنجیره های هیئت سازنده حیله گر Tricky constructor delegation chains

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

  • Copy Constructors: شما را دور می اندازد! Copy Constructors : Throwing you off!

  • شما یک ثابت کننده نقطه هستید! You're a Point fixer!

  • اشیاء ذخیره شده در آرایه ها کپی هستند Objects stored in arrays are copies

  • شما یک ناظر شکل هستید! You're a shape observer!

  • کپی کم عمق در مقابل عمیق Shallow Vs Deep copy

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

  • نیاز به سازندگان حرکت The need for move constructors

  • سازنده های حذف شده Deleted constructors

  • سازنده خود را حذف کنید؟ Delete your constructor ?

  • سازندگان لیست آغازگر Initializer list constructors

  • معکوس کننده Reverser

  • مقدار اولیه اولیه Aggregate Initialization

  • Initializers تعیین شده (C++20) Designated Initializers (C++20)

  • مقداردهی اولیه یکنواخت برای مصالح Uniform initializatoin for aggregates

  • خلاصه Summary

دوستان Friends

  • معرفی Introduction

  • توابع دوست Friend functions

  • اندازه گیری فواصل Measuring distances

  • کلاس های دوستان Friend classes

  • شما سازنده ShapeFactory هستید! You're a ShapeFactory maker!

  • خلاصه Summary

اعضای ثابت Static members

  • مقدمه (نظریه) Introduction (theory)

  • اعضای ثابت Static Members

  • متغیرهای عضو استاتیک Static member variables

  • اعضای ایستا: شما را دور انداختم! Static Members : Throwing you off!

  • Count'em Points Count'em Points

  • متغیرهای عضو استاتیک درون خطی (C++17) Inline static member variables (C++17)

  • ثابت های استاتیک Static constants

  • ثابت های ایستا قبل از C++17 Static constants pre C++17

  • مثل یک جنتلمن امتیاز بشمار Count Points like a gentleman

  • ابزار جالب Cool Utility

  • متغیرهای عضو از نوع خود Member variables of self type

  • متغیرهای عضو از انواع دیگر Member variables of other types

  • توابع عضو استاتیک Static member functions

  • توابع عضو استاتیک: شما را دور می اندازد! Static member functions : Throwing you off!

  • کلاس های تو در تو Nested classes

  • در کلاس، مقداردهی اولیه اعضا مجدداً بررسی شد In class member initialization revisited

  • خلاصه Summary

فضاهای نام Namespaces

  • معرفی Introduction

  • ایجاد فضاهای نام Creating Namespaces

  • از امتیازها مانند یک جنتلمن استفاده کنید Use Points like a gentleman

  • فضای نام در چندین فایل Namespaces Across Multiple Files

  • امتیازات خود را بین آنها تقسیم کنید Split your points across

  • فضای نام جهانی پیش فرض Default Global Namespace

  • جهانی کنید Make it global

  • ساخته شده در فضای نام Built In Namespaces

  • استفاده از اعلامیه ها Using Declarations

  • استفاده از اعلانات: شما را دور می اندازد! Using declarations : Throwing you off!

  • فضاهای نام ناشناس Anounymous Namespaces

  • فضاهای نام ناشناس: شما را دور می اندازد! Anonymous namespaces : Throwing you off!

  • فضاهای نام تو در تو Nested Namespaces

  • نام مستعار فضای نام Namespace Aliases

  • خلاصه Summary

برنامه های دارای چندین فایل: نگاهی دقیق تر Programs with multiple files : A closer look

  • معرفی Introduction

  • کامپایل و پیوند: مدل کامپایل Compiling and linking : Compilation Model

  • کامپایل و پیوند دادن: شما را دور می اندازد! Compiling and Linking : Throwing you off!

  • اعلامیه ها و تعاریف Declarations and definitions

  • اعلان یا تعریف: شما را دور انداختم! Declaration or Definition : Throwing you off!

  • قانون یک تعریف One Definition Rule

  • پیوند Linkage

  • متغیرهای خارجی جهانی Global external variables

  • لینکیج: شما را دور انداختم! Linnkage : Throwing you off!

  • چرخاندن پیوند Flipping linkage

  • متغیرها و توابع درون خطی Inline variables and functions

  • Inline Vs Static (فضای نام ناشناس) Inline Vs static (anonymous namespaces)

  • اعلامیه های فوروارد Forward declarations

  • خلاصه Summary

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

  • معرفی Introduction

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

  • Smarth Pointers: شما را دور می اندازد! Smarth Pointers : Throwing you off!

  • مثل یک آقا خاطره را آزاد کنید! Release memory like a gentleman!

  • تو می توانی بهتر از اینها انجام دهی! You can do better!

  • اشاره گرهای منحصر به فرد به عنوان پارامترهای تابع و مقادیر بازگشتی Unique pointers as function parameters and return values

  • پارامترهای روی حیله: پرتاب شما! Tricky parameters : Throwing you off!

  • اشاره گرها و آرایه های منحصر به فرد Unique pointers and arrays

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

  • اشاره گرهای مشترک: شما می توانید بهتر انجام دهید! Shared pointers : You can do better!

  • ایجاد نشانگرهای مشترک از نشانگرهای منحصر به فرد Creating shared pointers from unique pointers

  • اشاره گرهای مشترک با آرایه ها Shared pointers with arrays

  • اشاره گرهای مشترک به عنوان پارامترهای تابع و مقادیر بازگشتی Shared pointers as function parameters and return values

  • اشاره گر هوشمند: شما را دور می اندازد! Smart Pointers : Throwing you off!

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

  • اعضای اشاره گر هوشمند: خواندن توصیه می شود Smart pointer members : Recommended reading

  • هوشمند اشاره گر عقل متعارف Smart Pointers conventional wisdom

  • خلاصه Summary

بارگذاری بیش از حد اپراتور Operator Overloading

  • معرفی Introduction

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

  • operator+ برای نقاط چند بعدی operator+ for Multi-dimensional Points

  • اپراتور اضافه به عنوان غیرعضو Addition Operator as Non-Member

  • اضافه کردن رشته ها Adding up strings

  • نقاط چند بعدی: اپراتور غیر عضو + Multi-dimensional Points : Non member operator+

  • اپراتور مشترک برای خواندن Subscript Operator for Reading

  • داده ها را مانند یک جنتلمن بخوانید Read data like a genteleman

  • اپراتور مشترک برای خواندن و نوشتن Subscript Operator for Reading and Writing

  • اپراتور مشترک برای انواع مجموعه Subscript Operator for Collection Types

  • اپراتور عملیات درج جریان Stream Insertion Operation Operator

  • شما امتیاز چاپ خواهید کرد! You'll print Points!

  • شما رشته های خود را چاپ خواهید کرد! You'll print your own strings!

  • اپراتور استخراج جریان Stream Extraction Operator

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

  • اپراتورهای ترکیبی و استفاده مجدد از سایر اپراتورها Compound Operators && Reusing Other Operators

  • عملگرهای مرکب: شما را دور می اندازد! Compound operators : Throwing you off!

  • operator+= برای CU::string operator+= for CU::string

  • تبدیل نوع سفارشی Custom Type Conversions

  • تبدیل ضمنی با اپراتورهای باینری Overriden Implicit Conversions with Overriden Binary Operators

  • از CU:: رشته های چپ و راست، مانند یک جنتلمن استفاده کنید. Use CU::strings left and right, like a gentleman.

  • اپراتور افزایش پیشوند Unary به عنوان عضو Unary Prefix Increment Operator As Member

  • اپراتور افزایش پیشوند Unary به عنوان غیرعضو Unary Prefix Increment Operator as Non-Member

  • Unary Postfix Increment Operator Unary Postfix Increment Operator

  • عملگر کاهش پیشوند-پسوند (تمرین) Prefix-Postfix Decrement Operator (Exercise)

  • اپراتور تخصیص کپی Copy Assignment Operator

  • کپی: شما را دور می اندازد! Copies : Throwing you off!

  • CU:: عملگر انتساب کپی رشته CU::string copy assignment operator

  • اپراتور تخصیص کپی برای انواع دیگر Copy Assignment Operator for Other Types

  • Conversions Recap را تایپ کنید Type Conversions Recap

  • کارکردها Functors

  • شی تابع فاصله Distance function object

  • خلاصه Summary

  • [اختیاری] کلاس رشته خود شما [Optional] Your very own string class

عملگرهای منطقی و زیرساخت مقایسه سه راهه C++ 20 Logical Operators and C++ 20 Three Way Comparison Infrastructure

  • معرفی Introduction

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

  • شما CU::string را با هم مقایسه خواهید کرد You'll compare CU::string's

  • فضای نام Rel Ops Rel Ops Namespace

  • Rel Ops به جلو می رود Rel Ops going forward

  • عملگرهای منطقی با تبدیل های ضمنی Logical Operators with Implicit Conversions

  • مثل یک آقا مقایسه کنید Compare like a gentleman

  • عملگر مقایسه سه طرفه Three way comparison operator

  • اپراتور<=>: پرتت می کنم! operator<=> : Throwing you off!

  • اپراتور برابری پیش فرض Defaulted Equality Operator

  • آیا امتیازها برابر هستند؟ یا مساوی نیست؟ Are Points equal ? Or not equal ?

  • اپراتور برابری سفارشی Custom equality operator

  • آیا CU::string برابر است؟ : حالت C++20! Are CU::string's equal? : C++20 Mode!

  • سفارش پیش فرض با اپراتور سفینه فضایی Default ordering with spaceship operator

  • امتیازهای مرتب شده پیش فرض Default Ordered Points

  • اعضای بدون اپراتور سفینه فضایی Members without the spaceship operator

  • اپراتور سفینه فضایی سفارشی برای سفارش Custom spaceship operator for ordering

  • برابری و ترتیب برای CU::string Equality and ordering for CU::string

  • عملگرهای منطقی ساده شده Logical Operators Simplified

  • اپراتور سفینه فضایی به عنوان غیر عضو Spaceship operator as a non member

  • بزرگنمایی در ترتیب ضعیف - مثال 1 Zooming in on weak ordering - Example 1

  • بزرگنمایی در ترتیب ضعیف - مثال 2 Zooming on weak ordering - Example 2

  • بزرگنمایی در سفارش جزئی Zooming on partial ordering

  • جمع بندی مقایسه ها در C++ 20 Summing up on comparisons in C++ 20

  • خلاصه Summary

وراثت Inheritance

  • معرفی Introduction

  • ابتدا Inheritance را امتحان کنید First try on Inheritance

  • شما سلسله مراتب را اصلاح خواهید کرد You'll fix the hierarchy

  • اعضای محافظت شده Protected members

  • مشخص کننده های دسترسی اعضا: شما را دور می اندازد! Member access specifiers : Throwing you off!

  • دست به کارش کن Get it to work

  • پایه و مشتق شده: شما را از تعادل خارج می کند! Base and Derived : Throwing you off balance!

  • مشخص کننده های دسترسی کلاس پایه: بزرگنمایی Base class access specifiers : Zooming in

  • مشخص کننده های دسترسی کلاس پایه: یک نسخه آزمایشی Base class access specifiers : A demo

  • مشخص کننده های دسترسی کلاس پایه: شما را دور می اندازد! Base class access specifiers : Throwing you off!

  • نزدیک شدن به ارث خصوصی Closing in on Private Inheritance

  • احیای مجدد اعضا در متن Resurecting Members Back in Context

  • شما آنها را برگردانید! You'll bring them back!

  • سازندگان پیش فرض با وراثت Default Constructors with Inheritance

  • آنها را مخلوط کنید! Mix'em up!

  • سازندگان سفارشی با وراثت Custom Constructors With Inheritance

  • سازندگان Chain'em Chain'em Constructors

  • کپی سازندگان با وراثت Copy Constructors with Inheritance

  • آنها را با وراثت کپی کنید Copy construct'em with inheritance

  • سازندگان پایه به ارث می برند Inheriting Base Constructors

  • سازندگان پایه ارثی: شما را دور می‌اندازند Inherited base constructors : Throwing you off

  • ارث و ویرانگر Inheritance and Destructors

  • نمادهای مورد استفاده مجدد در وراثت Reused Symbols in Inheritance

  • خلاصه Summary

پلی مورفیسم Polymorphism

  • معرفی Introduction

  • اتصال استاتیک با وراثت Static Binding with Inheritance

  • صحافی ایستا: شما را بیرون می اندازد! Static binding : Throwing you off!

  • اتصال پویا با توابع مجازی Dynamic binding with virtual functions

  • یک درخت وراثت پویا بسازید Build a dynamic inheritance tree

  • کمک! کمک! ارجاعات عجیب اینجاست! Help! Help! Weird references here!

  • اندازه اشیاء چندشکل و برش Size of polymorphic objects and slicing

  • برش خورده؟ : پرتت کردن! Sliced off ? : Throwing you off!

  • اشیاء چند شکلی ذخیره شده در مجموعه ها (آرایه) Polymorphic objects stored in collections (array)

  • لغو Override

  • اضافه بار، نادیده گرفتن و پنهان کردن عملکرد Overloading, overriding and function hiding

  • اضافه بارهای دشوار Tricky Overloads

  • سلسله مراتب روی حیله: شما را دور می اندازد! Tricky Hierarchies : Throwing you off!

  • وراثت و چند شکلی در سطوح مختلف Inheritance and Polymorphism at different levels

  • وراثت و چندشکلی با اعضای ایستا Inheritance and polymorphism with static members

  • اعضای ثابت با وراثت Static members with inheritance

  • نهایی Final

  • Final و Override کلمات کلیدی نیستند Final and Override are not keywords

  • توابع چند شکلی و مشخص کننده های دسترسی Polymorphic functions and access specifiers

  • توابع غیر چند شکلی و مشخص کننده های دسترسی Non polymorphic functions and access specifiers

  • توابع مجازی با آرگومان های پیش فرض Virtual functions with default arguments

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

  • بازیگران پویا Dynamic casts

  • توابع و تخریب کننده های چند شکلی Polymorphic Functions and Destructors

  • عملگر typeid(). typeid() operator

  • توابع مجازی خالص و کلاس های انتزاعی Pure virtual functions and abstract classes

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

  • خلاصه Summary

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

  • معرفی Introduction

  • بلوک ها و محدوده را امتحان کنید و بگیرید Try and Catch Blocks and scope

  • مثل یک رئیس تقسیم کنید! Divide like a boss!

  • نیاز به استثنا The need for exceptions

  • رسیدگی به استثناها در سطوح مختلف Handling Exceptions At Different Levels

  • تعداد زیادی از سطوح: پرتاب شما! Lots of levels : Throwing you off!

  • چندین هندلر برای یک استثنا Multiple Handlers for an Exception

  • بلوک‌های آزمایشی تودرتو Nested Try Blocks

  • خطاهای خود را آشیانه کنید: شما را دور می اندازد! Nest your errors : Throwing you off!

  • پرتاب اشیاء کلاس Throwing Classs Objects

  • خودتان را بسازید Build your own

  • استثناها به عنوان اشیاء کلاس با سلسله مراتب ارثی Exceptions as Class Objects with Inheritance Hierarchies

  • بستگان: شما را دور انداختم! Relatives : Throwing you off!

  • استثناهای چند شکلی Polymorphic Exceptions

  • باز هم اقوام! : پرتت کردن! Relatives, again! : Throwing you off!

  • RethrownExceptions RethrownExceptions

  • برنامه خاتمه سفارشی Program custom termination

  • بیضی همه بلوک را بگیرد Ellipsis catch all block

  • noexcept Specifier noexcept Specifier

  • استثناها در Destructors Exceptions in Destructors

  • استثناهای استاندارد Standard Exceptions

  • گرفتن استثناهای استاندارد Catching Standard Exceptions

  • پرتاب استثناهای استاندارد Throwing Standard Exceptions

  • مثل یک آقا فایل ها را بخوانید! Read files like a gentleman!

  • استثناهای استاندارد زیر طبقه بندی Subclassing Standard Exceptions

  • خلاصه Summary

کلاس BoxContainer: تمرین آنچه می دانیم BoxContainer class : Practicing what we know

  • معرفی Introduction

  • ساخت و تخریب Constructing and destructing

  • افزودن و گسترش Adding and Expanding

  • حذف موارد Removing Items

  • سایر عملگرها (=،+،+=) Other operators (=,+,+=)

  • بزرگنمایی BoxContainer Zooming out on BoxContainer

  • ذخیره سازی در انواع مختلف Storing In Different Types

  • خلاصه Summary

الگوهای کلاس Class Templates

  • معرفی Introduction

  • الگوی کلاس اول شما Your First Class Template

  • ساختن نقشه های شما! Building your maps!

  • نمونه هایی از قالب های کلاس Instances Of Class templates

  • پیگیری موارد شما: شما را دور می اندازد! Keeping track of your instances : Throwing you off!

  • پارامترهای قالب غیر نوع Non type template parameters

  • نکات چند بعدی: کلاس چاقوی ارتش سوئیس Multi dimensional points : The swiss army knife class

  • نقاط سازگار؟ : پرتت کردن! Compatible points ? : Throwing you off!

  • مقادیر پیش فرض برای پارامترهای الگو Default Values for template parameters

  • پیش فرض های سالم Sane Defaults

  • نمونه های واضح الگو Explicit Template Instantiations

  • تخصص قالب Template Specialization

  • نقشه های خود را مقایسه کنید Compare your maps!

  • نقشه های تخصصی: شما را دور می اندازد! Specialized maps : Throwing you off!

  • قالب تخصصی با روش های انتخابی Tempate Specialization with select methods

  • مقایسه نقشه ها؟ دوباره نه!! Comparing Maps ? Not again!!

  • مقایسه نقشه ها آره. از نو! : پرتت کردن! Comparing Maps. Yes. Again! : Throwing you off!

  • الگوهای دوستان کلاس[معرفی نظریه] Friends of class templates[Theory intro]

  • توابع دوست برای الگوهای کلاس Friend functions for class templates

  • عملگر درج جریان برای الگوهای کلاس Stream insertion operator for class templates

  • نقاط را درج کنید! Stream insert'em Points!

  • درج نقشه‌های جاری! Stream insert'em Maps!

  • الگوهای کلاس با ویژگی‌های نوع و ادعاهای ثابت Class templates with type traits and static asserts

  • تایپ ویژگی های محدود Maps! Type traits constrained Maps!

  • قالب های کلاس با مفاهیم C++ 20 Class templates with C++ 20 concepts

  • ساخته شده در مفاهیم Built In Concepts

  • مفهوم محدود کردن نقشه های خود را! Concept constrain your maps!

  • مفاهیم مثال شماره 1 Concepts Example #1

  • مفاهیم مثال شماره 2 Concepts Example #2

  • بهتر کردن امتیاز برای استفاده با عملگر<< Making points better to use with operator<<

  • خلاصه Summary

Move Semantics Move Semantics

  • معرفی Introduction

  • Move Semantics: همه آنها در مورد چه چیزی هستند Move Semantics : What they're all about

  • Lvalues ​​و Rvalues Lvalues and Rvalues

  • Lvalues ​​و Rvalues: شما را دور می اندازد! Lvalues and Rvalues : Throwing you off!

  • ارجاعات Rvalue Rvalue references

  • ارجاعات Rvalue: شما را دور انداختم! Rvalue references : Throwing you off!

  • جابجایی موقت در اطراف Moving temporaries around

  • سازنده ها و عملگرهای انتساب را جابجا کنید Move constructors and assignment operators

  • حرکت از CU::string's Moving from CU::string's

  • حرکت Lvalues ​​با std::move Moving Lvalues with std::move

  • باطل کردن نشانگرهای بعد از std::move Invalidating pointers after std::move

  • فقط انواع را جابجا کنید Move only types

  • عبور از مرجع rvalue Passing by rvalue reference

  • خلاصه Summary

عملکرد مانند موجودیت ها Function Like Entities

  • معرفی Introduction

  • نشانگرهای تابع Function Pointers

  • مبالغ مجموعه Collection Sums

  • توابع پاسخ به تماس Callback Functions

  • اصلاح نمرات Modifying scores

  • نام مستعار نوع اشاره گر تابع Function Pointer Type Aliases

  • نام مستعار نوع اشاره گر تابع با الگوها Function Pointer Type Aliases with Templates

  • کارکردها Functors

  • اصلاح کننده های امتیاز کارکرد Functor score modifiers

  • عملکردهای استاندارد (در سربرگ <functional>) Standard Functors (in the <functional> header)

  • تابع ها با پارامترها Functors with parameters

  • چاپگر رنگی Color Printer

  • تابع ها و توابع لامبدا Functors and lambda functions

  • لامبدا به عنوان تماس پاسخگو عمل می کند Lambda functions as callbacks

  • گرفتن بر اساس ارزش در زیر کاپوت Capturing by value under the hood

  • گرفتن با مرجع زیر کاپوت Capturing by reference under the hood

  • میکس گرفتن Mixin capturing

  • گرفتن این اشاره گر Capturing the this pointer

  • std::function std::function

  • نمرات اصلاح std::function scores modifying std::function

  • خلاصه Summary

STL، Containers و Iterators STL, Containers and Iterators

  • معرفی Introduction

  • std:: vector std::vector

  • std:: آرایه std::array

  • تکرار کننده ها Iterators

  • پیمایش زیر مجموعه های کانتینر با تکرارکننده ها Traversing container subsets with iterators

  • تکرار کننده های معکوس Reverse iterarators

  • تکرار کننده های ثابت Constant iterators

  • انواع تکرار کننده Iterator types

  • std::begin و std::end std::begin and std::end

  • اتحادیه ها Unions

  • خلاصه Summary

بزرگنمایی روی ظروف STL Zooming in on STL Containers

  • معرفی Introduction

  • Sequence Containers : Deque Sequence Containers : Deque

  • Sequence Containers: لیست رو به جلو Sequence Containers : Forward list

  • Sequence Containers: List Sequence Containers : List

  • چاپ موقعیت ها Print positions

  • Sequence containers : std::vector revisited Sequence containers : std::vector revisited

  • Sequence Containers: std::array revisited Sequence Containers : std::array revisited

  • ظروف انجمنی: مقدمه Associative Containers : Intro

  • ظروف انجمنی: جفت Associative Containers : Pair

  • ظروف انجمنی: مجموعه Associative Containers : Set

  • محتویات انجمنی: نقشه Associative Containres : Map

  • کانتینرهای انجمنی: چند مجموعه و چند نقشه Associative Containers : Multiset & multimap

  • ظروف انجمنی نامرتب Unordered Associative Containers

  • آداپتورهای کانتینر: مقدمه Container Adaptors : Intro

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

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

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

  • خلاصه Summary

الگوریتم های STL STL Algorithms

  • معرفی Introduction

  • همه از All of

  • برای هر for_each

  • max_element و min_element max_element and min_element

  • پیدا کردن find

  • کپی 🀄 copy

  • مرتب سازی sort

  • تبدیل Transform

  • خلاصه Summary

  • MovableStack MovableStack

C++20 محدوده ها و الگوریتم های محدوده C++20 Ranges and Range Algorithms

  • معرفی Introduction

  • الگوریتم های محدوده Range Algorithms

  • C++ 20 Ranges Library Iterator Pair Algorithms C++ 20 Ranges Library Iterator Pair Algorithms

  • طرح ها Projections

  • نماها و آداپتورهای محدوده Views and and Range Adaptors

  • مشاهده ترکیب و اپراتور لوله View composition and Pipe operator

  • Range Factories Range Factories

  • خلاصه Summary

ایجاد تکرارهای سفارشی برای کانتینرهای شما Building Custom Iterators for Your Containers

  • معرفی Introduction

  • قدرت های Iterator Iterator Powers

  • تئوری تکرار کننده سفارشی Custom Iterator Theory

  • ساخت تکرار کننده ورودی سفارشی Building Custom Input Iterators

  • ساخت تکرار کننده های خروجی سفارشی Building Custom Output Iterators

  • ساخت تکرار کننده های سفارشی رو به جلو Building Custom Forward Iterators

  • ساخت تکرار کننده های سفارشی دو جهته Building Custom Bidirectional Iterators

  • ساخت تکرار کننده های دسترسی تصادفی سفارشی Building Custom Random Access Iterators

  • تکرار کننده های سفارشی با C++ 20 محدوده و نما Custom Iterators with C++ 20 Ranges and Views

  • تکرار کننده های ثابت Constant Iterators

  • اشاره گرهای خام به عنوان تکرار کننده Raw Pointers as Iterators

  • بسته بندی تکرار کننده ها از ظروف دیگر Wrapping Iterators From Other Containers

  • خلاصه Summary

C++ 20 Coroutines C++ 20 Coroutines

  • معرفی Introduction

  • گردش کار کوروتین Coroutine workflow

  • کلمات کلیدی کوروتین Coroutine keywords

  • زیرساخت کوروتین Couroutine Infrastructure

  • co_wait co_await

  • هم بازده co_yield

  • co_return co_rerturn

  • نوع کوروتین ژنراتور سفارشی Custom Generator Coroutine Type

  • نوع ژنراتور شخص ثالث Third Party Generator Type

  • خلاصه Summary

C++ 20 ماژول C++ 20 Modules

  • معرفی Introduction

  • اولین ماژول شما Your First Module

  • مسدود کردن صادرات Block Export

  • جداسازی رابط ماژول از پیاده سازی (همان فایل) Separating the Module Interface from the Implementation(Same File)

  • جداسازی رابط ماژول از پیاده سازی (فایل های مختلف) Separating the Module Interface from the Implementation(Different Files)

  • فایل های پیاده سازی چندگانه Multiple Implementatyion Files

  • فایل های رابط چندگانه Multiple Interface Files

  • صادرات و واردات Export Import

  • ماژول های فرعی Sub-Modules

  • پارتیشن های رابط ماژول Module Interface Partitions

  • الگوهای کلاس سفارشی به عنوان ماژول (BoxContainer) Custom Class Templates as Modules (BoxContainer)

  • ماژول ها با فضای نام Modules with Namespaces

  • قابلیت دید و دسترسی Visibility and Reachability

  • قطعات ماژول خصوصی Private Module Fragments

  • باید ها و نباید ها Do's and Don't's

  • خلاصه Summary

نمایش نظرات

نظری ارسال نشده است.

آموزش کلاس کارشناسی ارشد C++20: از اصول اولیه تا پیشرفته
خرید اشتراک و دانلود خرید تکی و دانلود | 968,000 تومان (14 روز مهلت دانلود) در صورت خرید اشتراک، این آموزش بدلیل حجم بالا معادل 11 دوره است و 11 دوره از اشتراک شما کم می شود. زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
114.5 hours
584
Udemy (یودمی) udemy-small
13 آذر 1402 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
26,967
- از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Daniel Gakwaya Daniel Gakwaya

مهندس نرم افزار در Blikoon Technologies

Udemy (یودمی)

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

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