بخش 1: مبانی C++
این بخش، ملزومات برنامه نویسی C++ را پوشش می دهد و پایه ای قوی برای موضوعات پیچیده تر ایجاد می کند.
متغیرها و انواع دادهها: با درک انواع مختلف دستههای داده C++، مانند اعداد صحیح، شناورها، کاراکترها و بولیان شروع میکنید. سوالات بر اعلان متغیرها، درک محدودیتهای هر نوع داده و کار با تبدیل نوع متمرکز خواهند بود.
عملگرها و عبارات: در اینجا، عملگرهای حسابی، منطقی، بیتی و رابطه ای را پوشش خواهید داد. سوالات دانش شما را در مورد انجام محاسبات، ارزیابی عبارات، و درک اولویت عملگر آزمایش می کنند.
دستورات کنترل : این مبحث عبارات if، else، switch و شرطی مورد استفاده برای کنترل جریان برنامه را پوشش می دهد. تصمیم گیری در کد، اعمال عملگرهای منطقی و کار با شرایط تودرتو را تمرین خواهید کرد.
حلقه ها: حلقه ها برای اجرای کارهای تکراری ضروری هستند. شما روی حلقههای for، while، و do-while تمرکز خواهید کرد، و سؤالات شامل مقداردهی اولیه حلقه، تکرار و شرایط پایان میشوند.
آرایه ها و رشته ها: آرایه ها و رشته ها دنباله ای از داده ها را ذخیره می کنند. سؤالات بر اعلان آرایه ها، دسترسی به عناصر، دستکاری پایه رشته ها، و درک مرزهای آرایه تمرکز دارند.
توابع و ارسال پارامتر: توابع به تجزیه کد به بخشهای قابل مدیریت کمک میکنند. سوالات شامل تعریف تابع، فراخوانی توابع و درک تفاوت بین مقدار عبور و مرجع عبور میشود.
بخش 2: برنامه نویسی شی گرا (OOP) در C++
این بخش شما را با قابلیت های برنامه نویسی شی گرا C++، که ستون فقرات برنامه های C++ است، آشنا می کند.
کلاس ها و اشیاء: تعریف کلاس ها، ایجاد اشیاء و درک رابطه آنها را بیاموزید. سوالات مربوط به تنظیم ویژگی ها، تعریف توابع اعضا، و درک کپسوله سازی هستند.
سازندهها و تخریبکنندهها: سازندهها اشیا را مقداردهی اولیه میکنند، در حالی که تخریبکنندهها منابع را پاکسازی میکنند. سوالات بر روی تعریف سازنده ها، درک بیش از حد سازنده، و نقش تخریب کننده ها تمرکز خواهند کرد.
وراثت و مشخص کننده های دسترسی: وراثت به کلاس ها اجازه می دهد تا خصوصیات را از کلاس های دیگر استخراج کنند. انواع مختلف وراثت را کاوش خواهید کرد، مانند وراثت تک و چندگانه، و مشخصکنندههای دسترسی عمومی، خصوصی و حفاظتشده را درک خواهید کرد.
چند شکلی و توابع مجازی: چند شکلی یک رابط را قادر می سازد تا چندین نوع داده را مدیریت کند. در مورد چندشکلی زمان اجرا، کار با کلاس های پایه و مشتق شده و استفاده از توابع مجازی خواهید آموخت.
کلاسها و رابطهای انتزاعی: کلاسهای انتزاعی طرحی را برای کلاسهای دیگر ارائه میکنند. شما روی تعریف توابع مجازی خالص و درک زمان استفاده از کلاسهای انتزاعی نسبت به کلاسهای مشخص تمرکز خواهید کرد.
بارگذاری بیش از حد اپراتور: C++ اجازه رفتار سفارشی را برای اپراتورها می دهد. شما اپراتورهای اضافه بار مانند +، -، *، و عملگرهای انتساب را پوشش می دهید، و تمرین می کنید که چه زمانی و چرا از بارگذاری بیش از حد اپراتور استفاده کنید.
بخش 3: تکنیک های برنامه نویسی پیشرفته
این بخش به ساختارهای پیشرفته C++ می پردازد که کدنویسی کارآمد و انعطاف پذیر را امکان پذیر می کند.
الگوها (قالبهای تابع و کلاس): الگوها برنامهنویسی عمومی را امکانپذیر میکنند و کدی را فعال میکنند که با هر نوع دادهای کار میکند. شما الگوهای تابع و قالبهای کلاس را پوشش میدهید، با تمرکز بر این که چگونه الگوها میتوانند کد را سادهسازی کنند و قابلیت استفاده مجدد را بهبود بخشند.
فضاهای نام: فضای نام به جلوگیری از تداخل نامگذاری در برنامه های بزرگ کمک می کند. تعریف فضاهای نام، استفاده از فضای نام std و ایجاد فضاهای نام سفارشی برای سازماندهی کد را تمرین خواهید کرد.
Exception Handling : استثناها خطاهای زمان اجرا را کنترل می کنند و به اجرای روان برنامه ها کمک می کنند. سعی، گرفتن و پرتاب را پوشش میدهید، و بررسی میکنید که چگونه استثناها مدیریت خطا را بهبود میبخشند و کنترل بهتری بر کدهای مستعد خطا ارائه میدهند.
مبانی کتابخانه استاندارد: C++ کتابخانه های قدرتمندی را برای کارهای رایج فراهم می کند. شما بر روی کتابخانههای اصلی مانند iostream برای ورودی/خروجی، برداری برای آرایههای پویا، و رشته برای دستکاری رشتهها تمرکز خواهید کرد، و درک خواهید کرد که چگونه این کتابخانهها در زمان صرفهجویی میکنند و کد را ساده میکنند.
نوع ریختهگری و تبدیل: C++ امکان ارسال هر دو نوع ضمنی و صریح را میدهد. خواهید آموخت که چه زمانی تبدیل نوع خودکار است و چگونه از static_cast، dynamic_cast و سایر عملگرهای ریخته گری برای دقت در مدیریت داده ها استفاده کنید.
بخش 4: مدیریت حافظه در C++
C++ کنترل مستقیم بر حافظه را می دهد، که یک مهارت مهم برای برنامه نویسی کارآمد است.
اشارهگرها و مراجع: اشارهگرها به آدرسهای حافظه اشاره میکنند و مراجع برای متغیرها نام مستعار ارائه میکنند. شما استفاده از نشانگرها را برای مدیریت حافظه، درک عدم ارجاع و اجتناب از مشکلات اشاره گر تهی تمرین خواهید کرد.
تخصیص حافظه پویا: با استفاده از new و delete، C++ اجازه تخصیص حافظه دستی را می دهد. سؤالات آرایه های پویا، تخصیص حافظه برای ساختارهای داده بزرگ، و نحوه جلوگیری از نشت حافظه را پوشش می دهند.
اشارهگرهای هوشمند: اشارهگرهای هوشمند، مانند unique_ptr، shared_ptr، و ضعیف_ptr، حافظه را بهطور خودکار مدیریت میکنند. شما متوجه خواهید شد که هر نوع اشاره گر هوشمند چگونه کار می کند و چرا آنها در C++ مدرن برای مدیریت ایمن منابع ضروری هستند.
نشت حافظه و پیشگیری: نشت حافظه می تواند عملکرد برنامه را کاهش دهد. شما علل نشت حافظه را کاوش خواهید کرد و بهترین روشها را برای جلوگیری از آنها یاد خواهید گرفت، مانند استفاده از اشارهگرهای هوشمند و توزیع مناسب حافظه.
حساب و ایمنی اشاره گر : با اشاره گرها می توانید مستقیماً به حافظه دسترسی داشته باشید و آن را دستکاری کنید. سوالات بر روی محاسبات نشانگر، درک نحوه تغییر آدرس نشانگرها، و تمرین دسترسی ایمن به حافظه برای جلوگیری از خرابی تمرکز دارند.
بخش 5: مفاهیم برنامه نویسی پیشرفته
این بخش بر روی تکنیک های برنامه نویسی تخصصی تر و قدرتمندتر تمرکز دارد.
مدیریت استثنا و مدیریت خطا: این مبحث مبتنی بر مدیریت استثناهای قبلی است، با تمرکز بر سناریوهای پیچیده تر. مدیریت چندین استثنا، زنجیرهبندی استثناها و ایجاد کلاسهای استثنای سفارشی را بررسی خواهید کرد.
مدیریت فایل: خواندن و نوشتن روی فایل ها برای بسیاری از برنامه ها ضروری است. سؤالات شامل استفاده از ifstream و ofstream برای باز کردن فایلها، مدیریت جریانهای فایل و پردازش دادههای ذخیرهشده خارجی میشوند.
بارگذاری بیش از حد اپراتور: بارگذاری بیش از حد اپراتور به شما امکان می دهد اپراتورها را برای کلاس ها سفارشی کنید. شما یاد خواهید گرفت که عملگرهای حسابی را برای ساختارهای داده پیچیده بارگذاری کنید و به کلاسهای سفارشی رفتار بصریتری بدهید.
نوع ریختهگری و تبدیل: بر اساس مواد قبلی، اپراتورهای ریختهگری مختلف مانند const_cast، reinterpret_cast، و dynamic_cast را بررسی خواهید کرد و کنترل دقیقی بر تبدیلهای نوع داده انجام میدهید.
بخش 6: C++ مدرن و Multithreading
این بخش آخر برخی از قدرتمندترین و مدرن ترین ویژگی های C++ را معرفی می کند.
اشارهگرهای هوشمند و مدیریت منابع: اشارهگرهای هوشمند مدیریت حافظه را خودکار میکنند، که در توسعه C++ مدرن ضروری است. شما به جزئیات منحصربفرد_ptr، shared_ptr، و ضعیف_ptr می پردازید و یاد می گیرید که چگونه هر کدام مالکیت منابع را مدیریت می کنند و از نشت حافظه جلوگیری می کنند.
عبارات لامبدا: لامبداها راهی برای ایجاد توابع کوتاه و درون خطی ارائه می دهند. سؤالات نحو و موارد استفاده را برای لامبداها پوشش می دهند، مانند ارسال لامبدا به عنوان آرگومان های تابع و گرفتن متغیرها در عبارات لامبدا.
Move Semantics و Rvalue References: Move semantics عملکرد را با به حداقل رساندن کپی غیر ضروری بهبود می بخشد. شما روی سازندههای حرکت و اپراتورهای تخصیص حرکت تمرکز خواهید کرد، و تمرین کنید که چه زمانی از std::move برای بهینهسازی مدیریت منابع استفاده کنید.
کتابخانه قالب استاندارد (STL): STL یک کتابخانه قدرتمند از ساختارهای داده و الگوریتم ها است. اجزای ضروری STL، مانند بردار، نقشه، مجموعه، و الگوریتمهایی مانند مرتبسازی را بررسی میکنید و نحوه استفاده از آنها را برای سادهسازی کد تمرین میکنید.
Multithreading: Multithreading به برنامه ها اجازه می دهد تا چندین کار را همزمان انجام دهند. std::thread برای ایجاد رشتهها، std::mutex برای مدیریت منابع مشترک و تکنیکهایی برای همگامسازی رشتهها برای جلوگیری از رقابت دادهها و بنبستها را پوشش میدهید.
مربی
نمایش نظرات