++C یک زبان برنامهنویسی ایستا، کامپایلشونده، همهمنظوره، حساس به حروف کوچک و بزرگ، و آزاد از نظر فرم است که از برنامهنویسی رویهای، شیگرا و عمومی پشتیبانی میکند.
++C به عنوان یک زبان سطح میانی شناخته میشود، زیرا ترکیبی از ویژگیهای زبانهای سطح بالا و سطح پایین را در خود دارد.
++C توسط بیارنه استراستروپ در سال ۱۹۷۹ در آزمایشگاه بل (Bell Labs) در موری هیل، نیوجرسی به عنوان توسعهای بر زبان C ایجاد شد و در ابتدا با نام C با کلاسها (C with Classes) شناخته میشد، اما بعداً در سال ۱۹۸۳ به ++C تغییر نام داد.
++C یک فرازبان از C است و تقریباً هر برنامه قانونی زبان C، یک برنامه قانونی در ++C نیز به شمار میرود.
نکته − یک زبان برنامهنویسی زمانی ایستا (static typing) نامیده میشود که بررسی نوع دادهها در زمان کامپایل انجام شود، نه در زمان اجرا.
برنامهنویسی شیگرا (Object-Oriented Programming)
++C بهطور کامل از برنامهنویسی شیگرا پشتیبانی میکند، که شامل چهار ستون اصلی توسعه شیگرا میباشد −
- کلاسها و اشیاء (Classes and Objects)
- کپسولهسازی (Encapsulation)
- پنهانسازی داده (Data Hiding)
- وراثت (Inheritance)
- چندریختی (Polymorphism)
کتابخانههای استاندارد (Standard Libraries)
++Standard C شامل سه بخش مهم است −
- زبان اصلی که شامل تمام اجزای پایه مانند متغیرها، نوع دادهها، و ثابتها میباشد.
- کتابخانه استاندارد C++ که مجموعه غنیای از توابع برای کار با فایلها، رشتهها و غیره فراهم میکند.
- کتابخانه الگوهای استاندارد (STL) که مجموعهای غنی از متدها برای کار با ساختارهای دادهای و غیره ارائه میدهد.
استاندارد ANSI
استاندارد ANSI تلاشی است برای اطمینان از قابل حمل بودن ++C؛ به طوری که کدی که برای کامپایلر مایکروسافت نوشته شده، بدون خطا روی کامپایلری در مک، یونیکس، ویندوز یا آلفا نیز قابل کامپایل باشد.استاندارد ANSI مدتی است که پایدار مانده و همه تولیدکنندگان اصلی کامپایلرهای ++C از آن پشتیبانی میکنند.
یادگیری ++C
مهمترین نکته هنگام یادگیری ++C، تمرکز بر مفاهیم است.هدف از یادگیری یک زبان برنامهنویسی، تبدیل شدن به یک برنامهنویس بهتر است؛ یعنی موثرتر بودن در طراحی و پیادهسازی سیستمهای جدید و نگهداری سیستمهای قدیمی.++C از سبکهای مختلف برنامهنویسی پشتیبانی میکند. میتوانید به سبک Fortran، C، Smalltalk و… در هر زبان برنامهنویسی کدنویسی کنید. هر سبک میتواند اهداف خود را به شکل موثری و با حفظ کارایی اجرا و حافظه پیادهسازی کند.
کاربرد ++C
++C توسط صدها هزار برنامهنویس در تقریباً همه حوزههای کاربردی مورد استفاده قرار میگیرد. ++C به طور گسترده برای نوشتن درایورهای سختافزار و نرمافزارهایی که نیاز به دستکاری مستقیم سختافزار تحت شرایط زمان واقعی دارند، استفاده میشود. ++C به دلیل ساختار شفافش، به طور گسترده برای آموزش و پژوهش مورد استفاده قرار میگیرد. هر کسی که از یک مکینتاش اپل یا یک رایانه شخصی با سیستمعامل ویندوز استفاده کرده باشد، به طور غیرمستقیم از ++C استفاده کرده است، چون رابط کاربری اصلی این سیستمها با ++C نوشته شدهاند.
برنامه Hello World در ++C
یادگیری ++C را با نوشتن اولین برنامه که عبارت “Hello World” را روی کنسول چاپ میکند، آغاز کنید −
#include <iostream> using namespace std; int main() { cout << "Hello, World!"; // prints Hello, World! return 0; }
خروجی کد بالا به صورت زیر است:
Hello, World!
مزایای زبان ++C
زبان برنامهنویسی ++C مزایای زیادی نسبت به سایر زبانها دارد. برخی از این مزایا عبارتاند از:
- کتابخانه استاندارد غنی: زبان ++C به کاربران کتابخانه استاندارد قالببندی شده (STL) بسیار غنی و کاربردی ارائه میدهد. این کتابخانه شامل متدها و قالبهای ساختار دادهای از پیش ساخته شده است که برنامهنویسی در این زبان را سریع و کارآمد میکند.
- مفاهیم برنامهنویسی شیگرا (OOPS): زبان ++C به کاربران مفاهیم برنامهنویسی شیگرا مانند کلاس، شیء، انتزاع، چندریختی و موارد دیگر را میدهد. بنابراین، این زبان نسخهای اصلاح شده و بهتر از زبان C است.
- عملکرد سریعتر: زبان ++C نسبت به زبانهایی مانند پایتون، گو، سیشارپ و بسیاری دیگر سرعت بالاتری دارد. این ویژگی آن را در سیستمهای جاسازیشده و پردازندههای بازی بسیار مفید میکند.
- کامپایلر کارآمد: ++C زبانی کامپایلشونده است. کامپایلر ++C بسیار چندمنظوره است و هم برنامههای رویهای و هم برنامههای شیگرا را میپذیرد.
- مستقل از سختافزار: زبان ++C مستقل از هر سختافزار یا طراحی سیستم است. برنامههای ++C روی هر سیستمی که کامپایلر ++C یا GCC نصب و فعال باشد، قابل اجرا هستند.
- پشتیبانی وسیع: ++C یکی از پرکاربردترین زبانهای برنامهنویسی در سراسر جهان است و جامعه بسیار بزرگی از توسعهدهندگان و برنامهنویسان دارد. این پشتیبانی را میتوان در پلتفرمهایی مانند GitHub، Reddit، Discord، DEV، Stack Overflow و غیره مشاهده کرد.
معایب زبان ++C
زبان برنامهنویسی ++C معایبی نیز دارد که در ادامه آورده شدهاند:
- تشخیص خطا: ++C امکانات طراحی در سطح پایین را فراهم میکند و بسیار نزدیک به سختافزار سیستم است. بنابراین، ممکن است کاربران دچار خطاهای کوچکی شوند که تشخیص و مشاهده آنها دشوار است.
- سینتکس طولانی: ++C کدهای نسبتاً طولانی دارد و بسیاری از برنامهنویسان نوشتن این کدهای طولانی را دشوار میدانند. این موضوع باعث نارضایتی کاربرانی شده است که زبانهای سادهتر و راحتتری مانند پایتون یا گو را ترجیح میدهند.
- شیب یادگیری: در مقایسه با پایتون و گو، یادگیری ++C پیچیدهتر و زمانبرتر است. کاربران اغلب احساس میکنند که مراحل ابتدایی یادگیری بسیار سخت است و مفاهیم زیادی وجود دارد که برای مبتدیان دشوار به نظر میرسد.
حقایق جالب درباره ++C
در ادامه، چند حقیقت جالب و کمتر شناخته شده درباره زبان برنامهنویسی ++C آمده است:
- زبان ++C در آزمایشگاه بل شرکت AT&T ساخته شده است، همان جایی که زبان C هم اختراع شده است.
- زبان ++C در ناسا بسیار مورد استفاده قرار میگیرد، جایی که در نرمافزارهای پرواز و طراحی فرمان کاربرد دارد.
- ++C جانشین زبان C است. نام ++C از زبان C گرفته شده و عملگر افزایش (‘++’) نشاندهنده نسخه جدیدتر این زبان نسبت به C است.
- ++C در زمینههایی مانند توسعه بازی، شبکههای سمت سرور، ارتباطات TCP/IP، طراحی در سطح پایین و بسیاری موارد دیگر کاربرد فراوان دارد.
- برنامههای ++C با اجرای تابع main() آغاز میشوند و سایر توابع نیز از طریق همین تابع فراخوانی میشوند.
- ++C تقریباً تمام ویژگیهای زبان C را به ارث برده و مفاهیم برنامهنویسی شیگرا را از زبان Simula68 گرفته است.
- ++C از برنامهنویسی کاملاً شیگرا پشتیبانی نمیکند. برنامهها میتوانند بدون استفاده از کلاسها و اشیاء اجرا شوند، درست مثل زبانهای رویهای.
- بسیاری از زبانهای برنامهنویسی از جمله C#، جاوا، جاوااسکریپت و غیره، بر اساس مفاهیم و ساختار ++C شکل گرفتهاند.