نوروز 1404مبارک! تا پایان امشب - بیشترین تخفیف تا امروز (%۷۰ و %۹۰) ویژه جشنواره نوروزی 1404 فقط 24 ساعت دریافت

سی‌پلاس‌پلاس (++C)

زبان C++ به عنوان یک زبان برنامه‌نویسی قدرتمند و چندمنظوره شناخته می‌شود. لرن‌فایلز دوره‌های آموزشی C++ را با سرفصل‌های استاندارد و جامع ارائه می‌دهد.


    دوره آموزش ++C

    در آموزش C++، مباحثی مثل ویژگی‌ها و صفات C++، ساختار آن، دستورات شرطی، توابع، متغیرها و ثوابت، خواندن و نوشتن، توابع بازگشتی، آرایه‌ها، دستورات کنترلی، رشته‌ها، عملگرها، حلقه‌ها و اشاره‌گرها را یاد می‌گیرید.

    -70%
    898,000 تومان
    269,400 تومان
    517 رای

    دوره آموزش بازی دوز

    دوره ساخت بازی دوز با ++C یکی از تمرین‌های مهم دانشگاهی است که تکنیک‌های مفیدی در برنامه‌نویسی به ما می‌آموزد. در لرن فایلز آموزش ساخت بازی دوز با ++C را به‌طور کامل برای شما آماده کرده‌ایم.

    رایگان
    691 رای

    دوره ساخت دفترچه تلفن با ++C

    دوره ساخت بازی دوز با ++C یکی از تمرین‌های مهم دانشگاهی است که تکنیک‌های مفیدی در برنامه‌نویسی به ما می‌آموزد. در لرن فایلز، آموزش ساخت بازی دوز با ++C را به‌طور کامل و کاربردی برای شما آماده کرده‌ایم.

    رایگان
    883 رای

    آموزش الگوریتم و فلوچارت

    آموزش الگوریتم و فلوچارت،به شما مفهوم الگوریتم به‌عنوان روش حل مسئله و دستورالعمل‌هایی که منجر به حل مسائل خاص می‌شوند را معرفی می‌کند.در این آموزش، فلوچارت‌ها به‌عنوان یکی از روش‌های بیان الگوریتم‌ها بررسی می‌شوند.

    رایگان
    641 رای
ایمیل خود را وارد کنید
و از آموزش های جدید این بخش با خبر شوید!

سی پلاس پلاس C++ چیست؟

C++ یه زبان برنامه نویسی سطح بالا و چند منظوره هست که توسط دانشمند کامپیوتر دانمارکی بیارنه استروستروپ ساخته شده. این زبان برای اولین بار توی سال 1985 به عنوان یه افزونه برای زبان C منتشر شد و از اون زمان به طور قابل توجهی گسترش پیدا کرده. از سال 1997، C++ شامل ویژگی های شی گرایی، برنامه نویسی جنریک و فانکشنال شده، علاوه بر قابلیت هایی برای مدیریت حافظه سطح پایین که برای سیستم هایی مثل میکروکامپیوترها یا ساخت سیستم عامل هایی مثل لینوکس و ویندوز استفاده میشه.این زبان معمولا به عنوان یک زبان کامپایل‌شده پیاده سازی میشه و بسیاری از شرکت ها کامپایلرهای C++ ارائه میدن، از جمله Free Software Foundation، LLVM، مایکروسافت، اینتل، Embarcadero، اوراکل و IBM.C++  با هدف برنامه نویسی سیستمی و نرم افزارهای تعبیه شده در محیط های با منابع محدود و همچنین سیستم های بزرگ طراحی شده و عملکرد، کارایی و انعطاف پذیری جزو نکات کلیدی طراحی اون هستن.علاوه بر این، C++ توی خیلی از حوزه های دیگه هم مفید واقع شده، از جمله زیرساخت های نرم افزاری و اپلیکیشن های دارای محدودیت منابع. این شامل برنامه های دسکتاپ، بازی های ویدیویی، سرورها (مثل تجارت الکترونیک، موتورهای جستجو یا پایگاه های داده) و برنامه های حساس به عملکرد بالا (مثل سوییچ های تلفنی یا کاوشگرهای فضایی) میشه.

تاریخچه سی پلاس پلاس C++

در سال 1979، بیارنه استروستروپ، دانشمند کامپیوتر دانمارکی، کار روی  "C with Classes" رو شروع کرد، که پیشرو زبان C++ محسوب میشه. انگیزه ایجاد این زبان جدید از تجربه‌ی استروستروپ در برنامه نویسی برای پایان‌نامه‌ی دکترای خودش نشأت گرفت.او متوجه شد که زبانSimula  ویژگی‌هایی داره که برای توسعه نرم‌افزارهای بزرگ خیلی مفیده، اما به خاطر کند بودنش برای استفاده‌ی عملی مناسب نیست. در مقابل، BCPL  خیلی سریع بود اما سطح خیلی پایینی داشت و برای توسعه‌ی نرم‌افزارهای بزرگ مناسب نبود.وقتی استروستروپ توی آزمایشگاه‌های AT&T Bell مشغول به کار شد، با مشکل تحلیل کرنل UNIX در زمینه‌ی پردازش توزیع‌شده مواجه شد. با یادآوری تجربه‌ی دکتراش، تصمیم گرفت زبان C رو با ویژگی‌های شبیه به  Simula  گسترش بده. زبان C انتخاب شد چون چندمنظوره، سریع، قابل حمل و به‌طور گسترده مورد استفاده بود. علاوه بر تأثیر C و Simula، زبان‌های دیگه‌ای هم روی طراحی این زبان جدید تأثیر گذاشتن، از جمله ALGOL 68، Ada، CLU و ML.

زبان C++

زبان C++ شامل دو بخش اصلیه : یک نگاشت مستقیم از ویژگی‌های سخت‌افزاری که عمدتاً توسط زیرمجموعه‌ C ارائه میشه، و انتزاع‌های بدون هزینه‌ی اضافی که بر اساس همین نگاشت‌ها ساخته شدن.بیارنه استروستروپ، C++ رو به عنوان "یک زبان برنامه‌نویسی سبک برای ساخت و استفاده از انتزاع‌های کارآمد و زیبا" توصیف میکنه. اون همچنین میگه "ترکیب دسترسی مستقیم به سخت‌افزار و انتزاع، پایه‌ی اصلی C++ هست. انجام این کار به شکلی کارآمد، چیزی هست که این زبان رو از بقیه‌ی زبان‌ها متمایز میکنه."C++ بیشتر سینتکس خودش رو از زبان C به ارث برده. به همین دلیل، برنامه‌Hello World  که با استاندارد C  مطابقت داشته باشه، در C++ هم معتبر هست.

ذخیره‌سازی اشیا (Object Storage) در C++

C++مثل زبان C از چهار نوع مدیریت حافظه پشتیبانی میکنه:
  • اشیای با مدت ذخیره‌سازی استاتیک (Static Storage Duration Objects) این اشیا در طول اجرای برنامه وجود دارن و فقط یک‌بار مقداردهی اولیه میشن.
  • اشیای با مدت ذخیره‌سازی وابسته به ترد (Thread Storage Duration Objects) این اشیا به یک ترد خاص مرتبط هستن و در طول عمر اون ترد وجود دارن.
  • اشیای با مدت ذخیره‌سازی خودکار (Automatic Storage Duration Objects) این اشیا درون یک بلاک تعریف میشن و وقتی اجرای بلاک به پایان برسه، از بین میرن.
  • اشیای با مدت ذخیره‌سازی پویا (Dynamic Storage Duration Objects) این اشیا به‌صورت دینامیک در Heap تخصیص داده میشن و تا زمانی که به‌صورت دستی آزاد نشن، باقی میمونن.

تمپلیت ها (Templates) C++

تمپلیت های C++ امکان برنامه نویسی جنریک رو فراهم میکنن. C++ از تمپلیت های تابع، کلاس، نام مستعار (Alias)، و متغیر پشتیبانی میکنه. تمپلیت ها میتونن بر اساس نوع ها، مقادیر ثابت در زمان کامپایل و حتی تمپلیت های دیگه پارامتری سازی بشن.تمپلیت ها در زمان کامپایل نمونه سازی (Instantiation) میشن. برای نمونه سازی یک تمپلیت، کامپایلر آرگومان های مشخصی رو جایگزین پارامترهای تمپلیت میکنه تا یک نسخه خاص از تابع یا کلاس ایجاد بشه. با این حال، برخی جایگزینی ها ممکنه ممکن نباشن و در این موارد، مکانیزم "Substitution Failure Is Not An Error" (SFINAE) باعث میشه این جایگزینی های نامعتبر، خطا محسوب نشن بلکه حذف بشن.تمپلیت ها یک ابزار قدرتمند برای برنامه نویسی جنریک، متاپروگرامینگ با تمپلیت و بهینه سازی کد هستن، اما این قدرت هزینه هایی هم داره. استفاده از تمپلیت ها میتونه باعث افزایش اندازه کد شیء (Object Code) بشه، چون هر بار که یک تمپلیت نمونه سازی میشه، یک نسخه جدا از کد اون تولید میشه، برای هر مجموعه از آرگومان های تمپلیت.با این حال، مقدار کدی که تولید میشه معمولا به همون اندازه یا حتی کمتر از کدی هست که اگر به صورت دستی نوشته میشد، تولید میشد.این روش با جنریک های زمان اجرا (Run-time Generics) که در زبان هایی مثل Java دیده میشه متفاوته. در این زبان ها، نوع در زمان کامپایل حذف میشه (Type Erasure) و فقط یک بدنه عمومی از تمپلیت حفظ میشه، که در زمان اجرا با انواع مختلف مدیریت میشه.

اشیا (Objects) در C++

C++ ویژگی های برنامه نویسی شی گرا (OOP) رو به زبان C اضافه میکنه. این زبان از کلاس ها پشتیبانی میکنه که چهار ویژگی اصلی OOP (و برخی ویژگی های فراتر از OOP) رو ارائه میدن : انتزاع  (Abstraction)، کپسوله سازی (Encapsulation)، وراثت (Inheritance) و چندریختی (Polymorphism) .یکی از ویژگی های متمایز کلاس های C++ نسبت به کلاس های سایر زبان های برنامه نویسی، پشتیبانی از سازنده های مخرب مشخص (Deterministic Destructors) هست که به نوبه خودشون از مفهوم "تخصیص منابع همزمان با مقداردهی اولیه " (RAII - Resource Acquisition is Initialization) پشتیبانی میکنن.