درباره دوره:
آیا میخواهید دانش خود در C++ را بیشتر کنید؟
در این دوره آموزش پیشرفته سی پلاس پلاس برخی از جنبههای پیچیدهتر این زبان برنامه نویسی از Smart Pointer ها گرفته تا Move Semantics را بررسی میکنیم. در ابتدا کمی عمیقتر وارد مباحث کلاسها و Object ها از جمله وراثت کلاس میشویم.
سپس به سراغ Smart Pointer ها میرویم که کارایی یک Pointer را به همراه تخصیص حافظه مدیریت شده ارائه میکنند. همچنین Move Semantics را آموزش میدهیم، از جمله نحوه Copy و Swap، توابع Lambda، کار با یک کتابخانه تست واحد و ساخت یک کتابخانه String اختصاصی.
در انتها کاربردهای عملی این مفاهیم را به شما نشان میدهیم و یاد میدهیم چگونه از مهارتهای جدید خود در پروژههای C++ استفاده کنید.
مقدمه:
1 – برنامه نویسی پیشرفته با C++
کلاسها و آبجکتها:
1 – تعریف یک کلاس
2 – اعضای داده
3 – اعضای تابع
4 – Constructorها و Destructorها
5 – Namespaceها
6 – Constructorهای صریح
7 – Pointer خود ارجاع
8 – Overload های عملگر
9 – عملگرهای غیر عضو
10 – عملگرهای تبدیل
11 – عملگرهای افزایشی و کاهشی
12 – تخصیص حافظه Object
13 – Functor ها
14 – مثال: numword
وراثت کلاس:
1 – بررسی وراثت
2 – وراثت ساده
3 – دسترسی به کلاس پایه
4 – Friendship
5 – وراثت چندگانه
6 – چندریختی
اسمارت پوینترها:
1 – چرا از Smart Pointer ها استفاده کنیم؟
2 – Pointerهای منحصر بفرد
3 – Pointerهای مشترک
4 – Pointerهای ضعیف
5 – استفاده از یک deleter اختصاصی
6 – انتخاب یک Smart Pointer
Move Semantics:
1 – Move Semantics چیست؟
2 – آشنایی با lvalue و rvalue
3 – استفاده از std::move
4 – move constructor
5 – عملگر move assignment
6 – اصطلاح copy and swap
7 – قانون پنج
توابع لامبدا:
1 – قائده نحوی lambda
2 – Captureها
3 – Lambdaهای چندریختی
پیش پردازنده سی:
1 – درباره پیش پردازنده
2 – ماکروها به عنوان ثابتها
3 – شامل کردن فایلها
4 – کامپایل شرطی
5 – تعریف ماکروها
6 – شامل کردن فایل ها تنها یک بار
تستهای واحد:
1 – اهمیت تستهای واحد
2 – یک کتابخانه تست واحد
کتابخانه اختصاصی استرینگ:
1 – چرا از String های غیر STL استفاده کنیم؟
2 – مروری بر BWString
3 – Constructor ها
4 – مدیریت حافظه
5 – عملگرها
6 – متدهای Utility
7 – یافتن و جایگزین کردن
8 – بریدن String ها
نتیجه گیری:
1 – استفاده از کتابخانه BWString