مرورگر شما از این ویدیو پشتیبانی نمی کند.
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
(صرفا برای مشاهده نمونه ویدیو، ممکن هست نیاز به شکن داشته باشید.)
بارگزاری مجدد
توضیحات دوره:
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++ مدرن با استانداردهای 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]
تنظیم محیط - ویندوز
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
نمایش نظرات