زبان برنامه نويسي ++C يک زبان برنامه نويسي رايانه اي همه منظوره،
شئ گرا سطح بالا و چندرگه (که از برنامهنویسی رویهای، تجرید دادهها و برنامهنویسی شیءگرا پشتیبانی میکند)، عمومی و با قابلیتهای سطح بالا و سطح پايين مي باشد. اين زبان داراي قابليت هاي انواع داده ايستا، نوشتار آزاد، چند مدلي، معمولا زبان ترجمه شده با پشتيباني از برنامه نويسي ساخت يافته و
برنامه نويسي شئ گرا است. ++C به همراه جد خود C از پرطرفدارترین زبانهای برنامهنویسی تجاری هستند.
زبان ++c یک زبان سطح مياني در نظر گرفته میشود. این زبان دارای قابلیت زبانهای سطح بالا و پایین بهصورت همزمان است.
استاندارد زبان
بعد از سالها کار کمیته مشترک ANSI-ISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC ۱۴۸۸۲:۱۹۹۸). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخهٔ اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنیای بهنام «گزارش فنی کتابخانهٔ ۱» (که معمولاً بصورت اختصار TR۱ خوانده میشود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخشهایی را به آن اضافه نموده که انتظار میرود در نسخههای بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.
ويژگي هاي معرفي شده در ++C
در مقایسه با C زبان ++C ویژگیهای جدیدی را معرفی نمودهاست مانند تعریف متغیر به عنوان عبارت، تغییر نوعهای همانند تابع، new/حذف، نوع داده bool، توابع درونخطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::،
کلاسها (شامل تمام ویژگیهای مربوط به
کلاسها همانند وراثت، اعضای تابع، توابع مجازی،
کلاسهاي انتزاعی، و سازندهها)، قالبها، پردازش استثنا، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).
برخلاف باور عموم ++C نوع داده ثابت را معرفی ننمودهاست. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد. در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام میدهد.
بعضی ویژگیهای ++C بعداً توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C ویژگیهایی معرفی شدهاست که در ++C وجود ندارند مانند ماکروهاي قابل تغيير و استفاده بهتر از آرایهها به عنوان آرگومان. بعضی کامپایلرها این ویژگیها را پیاده نمودهاند اما در بقیه این ویژگیها موجب ناهماهنگی میگردد.
ساختار برنامه ها
ساختار برنامهها در این زبان بدین صورت است که همانند زبان C، هر برنامه بایستی یک تابع اصلی (main) به عنوان بدنه برنامه داشته باشد. هر برنامه معمولاً از تعداد زیادی فایل تشکیل میشود که به هم الحاق میگردند (با دستور include) و به این فایلهای الحاقی سرايند (Header) میگوییم. فایلهای الحاقی حاوی کدها یا نسخههای اجرایی
کلاسها (مجموعه متغیرها و توابع) میباشند که در بدنه اصلی برنامه از آنها استفاده میشود. معمولاً هر
کلاس
(که تعریف یک نوع دادهای با متدهای مربوط به آن است) را در یک سرآیند مینویسند. هر سرايند که معمولاً تنها تعاریف (معرفی)
کلاس را در خود دارد به همراه فایلهای پیاده سازی به زبان ++C یا پیاده سازیهای کامپایل شده (به صورت فایل اشیا مانند dll یا so یا ... ) میتواند به کار برده شود. به مجموعههای یکپارچهای از
کلاسهاي پیاده سازی شده (به صورت فایلهای سرآیند با پیاده سازیهای کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار میروند، یک کتابخانه ++C گفته میشود و قدرت اصلی این زبان در امکان به کارگیری کتابخانههای آماده میباشد. کتابخانههای بزرگ ++C مانند STL، MFC، QT و ... مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کردهاند.