کارگاه آموزشی مفاهیم پیشرفته در نسخه های مدرن زبان برنامه نویسی C++
توضیحات: زبان برنامه سازی C++ یک زبان قدیمی است که از دهه های گذشته همواره مورد توجه مهندسین نرم افزار و برنامه نویسان سیستم بوده است. این زبان تا مدت زیادی تغییری در امکانات خود برای کاربر ایجاد نکرد، به همین دلیل ظهور زبان های مدرن دیگر همانند جاوا سبب شد تا زبان برنامه سازی C++ تا مدتها در حاشیه باشد. اما ازچند سال پیش، فرایند مدرن سازی این زبان در دستور کار کمیته استاندارد سازی آن قرار گرفته است و باعث شده است تا نسخه ها جدیدی مانندC++11، C++14، C++17 و اخیرا نیز C++20 از این استاندارد تهیه شده و کامپایلرهای مرتبط نیز طراحی و تولید گردد.
این کارگاه سعی دارد برنامه نویسان فعلی زبان C++ را با مفاهیم مدرن و جدید این زبان آشنا کند. شرکت در این کارگاه دید عمیق تر و وسیع تری نسبت به امکانات مدرن زبان C++ به برنامه نویسان خواهد داد.
مخاطبان:
این کارگاه برای دو دسته از مخاطبان تهیه شده است:
- آن دسته از مهندسان نرم افزاری که با زبان C++ آشنا بوده و برنامه نویسی کرده اند، اما تا کنون از امکانات مدرن آن نظیر C++11/14 استفاده ننموده اند.
- آن دسته از مهندسان نرم افزاری که از امکانات مدرن زبان C++ استفاده کرده اند، اما نیاز به درک عمیق تری از این مفاهیم دارند.
توجه: این کارگاه برای مهندسین نرم افزاری که آشنایی قبلی با زبان C++ ندارند توصیه نمی شود.
سرفصل ها:
- مدیریت خودکار حافظه توسط اشاره گرهای هوشمند (Smart Pointers)
- ساختار اشاره گرهای یکتا، مشترک و ضعیف
- موارد کاربرد هر یک از اشاره گرها
- اشیای قابل فراخوانی (Callable Objects)
- معرفی پنج مدل از اشیای قابل فراخوانی
- معرفی امکانات مرتبط
- مورد کاربرد این اشیا
- عبارات لامبدا (Lambda Expressions)
- معماری داخلی عبارات لامبدا
- نحوه استفاده بهینه از این عبارات
- استنتاج خودکار نوع داده ها (auto)
- قوانین استنتاج نوع داده ها (Type deduction rules)
- موارد استفاده نوع داده های خودکار
- مقداردهی اولیه به شکل یکسان (Uniform Initialisation)
- مفاهیم مرتبط با انتقال اشیاء (Move Semantics)
- مروری بر مفاهیم rvalue و lvalue
- سازنده های انتقالی (Move Constructors)
- معرفی کانتینرهای جدید (unordered_map/set)
- کانتینرهای بدون ترتیب
- موارد کاربرد این کانتینرها
- معرفی الگوریتم های جدید (new algorithms)
- کتابخانه مدیریت بندها (thread management)
- ساختار طراحی این کتابخانه
- معرفی اشیای مرتبط مانند اشیای آینده (Future Objects)
دیدگاهها
" لطفا آموخته ها و تجربیات خود را از کلاس هایی که داشتید، با ما در میان بگذارید."