آن دسته از افرادی که می خواهند وارد دنیای برنامه نویسی شوند و می خواهند با منطق برنامه نویسی آشنا شوند.
آن دسته از برنامه نویسانی که می خواهند مفاهیم شی گراء را در محیطی عملی و کاربردی فراگیری نمایند نیز از مخاطبین این دوره هستند.
آن دسته از دانشجویانی که دنبال توسیع و تدوین و یکپارچه سازی معلومات خود در رابطه با زبان شی گرای C++ هستند هم از مخاطبین این دوره هستند.
سرفصلهای دوره:
- شروع
- تاریخچه مختصری از C++
- نیاز برای حل مشکلات
- رویه ای، ساختار، و برنامه نویسی شی گرا
- برنامه نویسی شی گرا(Object-Oriented Programming (OOP))
- C++و برنامه نویسی شی گرا
- چگونه C++ متحول شده است
- اول باید C را یاد بگیرید
- C++ و جاوا، و #C
- مدیریت مایکروسافت برای C++
- آماده سازی برای برنامه
- توسعه محیط خود
- فرایند ایجاد برنامه
- ایجاد یک فایل شی با کامپایلر
- ایجاد یک فایل اجرایی با لینکر
- چرخه توسعه
- کار با کامپایلر خود
- کامپایل خطاها
- تشریح برنامه C++
- یک برنامه ساده
- یک نگاه مختصر به cout
- استفاده از فضای نام استاندارد Standard Namespace
- کامنت کردن Commenting برنامه های خود
- انواع کامنت ها
- استفاده از کامنت ها
- حرف آخر از توجه به کامنت ها
- توابع Functions
- استفاده از توابع
- متدها در مقابل توابع
- کار با متغیرها و ثابت ها
- یک متغیر Variable چیست؟
- ذخیره سازی داده ها در حافظه
- کنار گذاشتن حافظه
- اندازه از اعداد صحیح Integers
- امضا شده و بدون علامت signed and unsigned
- اساسی انواع متغیر
- تعریف یک متغیر
- حساسیت به حروف Case Sensitivity
- قراردادهای نامگذاری
- ایجاد بیش از یک متغیر در یک زمان
- تخصیص مقادیر به متغیر ها
- ایجاد نامهای مستعار با typedef
- هنگامی که برای استفاده کوتاه و هنگامی که به استفاده طولانی
- پوشش Wrapping در اطراف یک عدد صحیح بدون علامت
- پوشش Wrapping در اطراف یک عدد صحیح امضا شده signed
- کار کردن با کاراکترها
- کاراکترها و شماره ها
- کاراکترهای چاپ ویژه
- Constants ثابت ها
- Literal Constants
- ثابت سمبلیک
- ثابت شمارشی
- ایجاد عبارات و اظهارات Statements
- شروع با Statements
- استفاده از فضای خالی
- بلوک ها و Statements های ترکیبی
- عبارات
- کار با Operators
- عملگرهای انتساب
- عملگرهای ریاضی
- ترکیب انتساب و ریاضی عملگرها
- ایجاد یک طرح ساده
- پیشوند در مقابل Postfixing
- درک اولویت عملگر
- پرانتز تودرتو
- ارزیابی با اپراتورهای رابطه ای
- دستور if
- سبک تورفتگی Indentation
- دستور else
- عبارات پیشرفته if
- استفاده از پرانتز در عبارات if تو در تو
- استفاده از عملگرهای منطقی Logical
- عملگر AND منطقی
- عملگر OR منطقی
- عملگر NOT منطقی
- بررسی اتصال کوتاه
- Relational Precedence
- عملگر شرطی (سه تایی)
- سازماندهی به توابع
- یک تابع چیست؟
- مقادیر بازگشتی ,پارامترهای و آرگومانها
- اعلان Declaring و تعریف توابع
- نمونه Prototypes تابع
- تعریف تابع
- اجرای توابع
- تعیین حوزه دید متغیر
- متغیرهای محلی Local Variables
- تغیرهای محلی در بلوک ها Blocks
- پارامترهای متغیرهای محلی
- متغیرهای Global
- نکته مهم در مورد برای ایجاد Statements تابع
- درباره آرگومان تابع
- مقادیر بازگشتی
- پارامتر های پیش فرض
- Overloading توابع
- توابع خطی
- Recursion
- سطوح انتزاعی Abstraction
- درک برنامه نویسی شی گرا
- آیا C++ شی گرا است؟
- ایجاد انواع Types جدید
- معرفی کلاس ها و اعضای آن
- اعلام Declaring کلاس
- اعلان Declaring کلاس
- تعریف یک شی
- کلاس ها در مقابل اشیاء
- دسترسی به اعضای کلاس
- دسترسی خصوصی Private در مقابل دسترسی عمومی Public
- ساخت عضو خصوصی داده
- پیاده سازی متدهای کلاس
- اضافه کردن Constructors و Destructors
- دریافت یک Constructor پیش فرض
- توابع عضو ثابت
- واسط Interface در مقابل اجرا Implementation
- Declarations کلاس و متدهای تعاریف را کجا قرار دهیم
- پیاده سازی درون خطی
- بررسی ساختارها Structures
- پیاده سازی
- برنامه فلو
- حلقه Looping
- منشأ حلقه: goto
- چرا از goto دوری کنید
- استفاده از حلقه while
- آشنایی با continue و break
- پیاده سازی حلقه های do...while
- استفاده از do...while
- حلقه های پیشرفته
- حلقه های خالی
- حلقه تو در تو
- Scoping برای حلقه ها
- کنترل کردن Flow با دستورات switch
- درک اشاره گرها Pointer
- Pointer چیست؟
- اندکی در مورد حافظه
- گرفتن آدرس حافظه یک متغیر
- ذخیره آدرس یک متغیر را در یک اشاره گر
- نامهای اشاره گر
- گرفتن مقدار از یک متغیر
- بصورت غیر مرجع با عمل گر Indirection
- دستکاری داده ها با استفاده از اشاره گرها
- آزمایش آدرس
- چرا از اشاره گرها استفاده می کنید
- پشته Stack و (Free Store (Heap
- اختصاص فضا با کلمه کلیدی جدید
- قرار دادن حافظه Back: کلید واژه حذف
- نگاهی دیگر به Memory Leaks
- ایجاد اشیاء در حافظه آزاد
- پاک کردن اشیاء از حافظه آزاد
- دسترسی به اعضای داده
- ایجاد داده های عضو در حافظه آزاد
- بهره برداری از منابع
- یک Reference چیست؟
- استفاده از عملگر آدرس (&) در منابع Reference
- تلاش برای Reassign منابع (Not!)
- اشاره به اشیاء
- اشاره گر Null و مراجع Null
- عبور Passing از آرگومان تابع توسط Reference
- ساخت swap با Pointers
- اجرای swap () با اشاره
- درک عناوین و Prototypes تابع
- بازگشت چندین مقدار
- بازگشت مقدار بوسیله Reference
- عبور توسط مرجع برای بازدهی
- پاس دهی یک اشاره گر ثابت
- References به عنوان یک جایگزین
- دانستن زمانی که نیاز به استفاده از References در مقابل اشاره گرها هست
- مخلوط References و Pointers
- بازگشت یک مرجع به یک شی بر روی پشته
- کار با توابع پیشرفته
- Overloaded توابع عضو
- استفاده از مقادیر پیش فرض
- انتخاب بین مقادیر پیش فرض و توابع Overloaded
- Constructor پیش فرض
- Overloading Constructors
- مقدار دهی اولیه اشیاء
- کپی کردن Constructors
- Overloading عملگرها
- Overloading عملگر پیشوند
- انواع بازگشتی در توابع عملگر Overloaded
- Overloading عملگر پسوند
- تفاوت بین پیشوند و پسوند
- Overloading عملگرهای باینری ریاضی
- مسائل در عملگرهای Overload
- محدودیت در عملگرهای Overload
- عملگر انتساب Assignment
- Handling تبدیل نوع داده
- عملگر تبدیل
- تجزیه و تحلیل و طراحی شی گرا
- ساختمان مدلها
- طراحی نرم افزار: زبان مدل سازی
- طراحی نرم افزار: فرایند
- آبشار Waterfall در مقابل توسعه تکرار
- فرایند توسعه تکرار
- مرحله 1: مرحله مفهوم: شروع با چشمانداز Vision
- مرحله 2: فاز تجزیه تحلیل : مرحله جمع آوری نیازمندیها
- موارد استفاده Use Cases
- تحلیل برنامه
- تجزیه و تحلیل سیستم
- برنامه ریزی مدارک
- آثار Artifacts
- مرحله 3: مرحله طراحی
- کلاس ها چه هستند؟
- تبدیلات Transformations
- ساخت مدل استاتیک
- مدل پویا
- مراحل 4: پیاده سازی، تست، و rollout برروی ؟
- تکرار
- پیاده سازی وراثت Inheritance
- ارث بری چیست؟
- ارث و مشتق
- ساختار اشتقاق Derivation
- خصوصی در مقابل محافظت شده
- Constructors و Destructors
- پاس دهی آرگومان های به Constructors پایه
- Overriding توابع کلاس پایه
- پنهان کردن متدهای کلاس پایه
- فراخوانی متدهای پایه
- روش های مجازی
- چگونه کار با توابع مجازی
- تلاش برای دسترسی به متدهای از یک کلاس پایه
- برش Slicing
- ایجاد Destructors مجازی
- Constructors کپی مجازی
- مدیریت آرایه ها و رشته ها
- آرایه چیست؟
- دسترسی به عناصر آرایه
- مقدار دهی اولیه آرایه
- اعلان آرایه
- استفاده از آرایه ای از اشیاء
- تعریف آرایه های چند بعدی
- مقدار دهی اولیه آرایه های چند بعدی
- ساخت آرایه از اشاره گرها
- نگاهی به اشاره گر محاسباتی - و موضوع پیشرفته
- تعریف آرایه در Free Store
- یک اشاره گر به یک آرایه در مقابل آرایه ای از اشاره گرها
- اشاره گرها و نامهای آرایه
- حذف آرایه در Free Store
- تغییر اندازه آرایه در زمان اجرا
- کاراکتر آرایه ها و رشته ها
- استفاده از ()strcpy و متد ()strncpy
- کلاس های رشته
- ایجاد کلاس هایی از آرایه
- Polymorphism
- مشکلات با تک توارث
- Casting Down
- اضافه کردن به دو لیست
- ارث بری چندگانه
- بخش هایی از یک شی چند ارثی
- Constructors در اشیاء Multiply Inherited
- ارث بری از کلاس پایه مشترک
- ارث بری مجازی
- مشکل با ارث بری چندگانه
- mixin ها و قابلیت های کلاس
- انواع داده انتزاعی Abstract
- توابع مجازی Pure
- پیاده سازی توابع مجازی Pure
- کلاس های ویژه و توابع
- به اشتراک گذاری داده ها بین اشیاء از همان نوع: داده استاتیک
- استفاده از توابع عضو استاتیک
- اشاره گرها به توابع
- چرا از اشاره گر تابع استفاده کنید ؟
- آرایه از اشاره گرها به توابع
- پاس دهی اشاره گرها به توابع به توابع دیگر
- استفاده از typedef با اشاره گرها به توابع
- اشاره گرها به توابع عضو
- آرایه از اشاره گرها به توابع عضو
- کار کردن با Streams
- کپسوله شده جریان داده Encapsulation of Data Flow
- درک بافر Buffering
- Streams و Buffers
- استاندارد I / O
- Input Using cin
- رشته Inputting
- مشکلات رشته ها
- مقدار بازگشتی Value
- ورودی کاراکتر واحد
- گرفتن رشته از ورودی استاندارد
- استفاده کردن از ()cin.ignore
- Peeking و کاراکترهای بازگشتی: peek() و putback()
- خروجی با cout
- Flushing خروجی
- توابع برای انجام خروجی
- Manipulators و Flags و دستورالعمل های قالب بندی Formatting
- Streams در مقابل تابع ()printf
- فایل های ورودی و خروجی
- استفاده از ofstream
- باز کردن فایل ها برای ورودی و خروجی
- فایل های دودویی در مقابل متن
- خطاها Handling و استثنا
- Bugs, Errors, اشتباهات و Code Rot
- شرایط استثنایی Exception
- ایده پشت استثنا
- بخش های از دست زدن به استثنا
- ایجاد یک کلاس استثنا
- سلسله مراتب استثنا
- داده ها در استثنا و نامگذاری اشیاء استثنا
- استثنا و قالب ها Templates
- استثنا بدون خطا
- Bugs and Debugging
- Breakpoints
- Watch Points
- قالب ها Templates
- قالب ها چه هستند؟
- ساختار تعریف الگو
- استفاده از نام
- پیاده سازی قالب
- استفاده از Template Items
- استفاده از توابع تخصصی
- استفاده از Containers
- درک Sequence Containers
- درک Associative Containers
کاملترین اموزش زبان ++ C