C++ تقریبا شبیه به زبان برنامهنویسی C است. در حقیقت، C++ از همهی ویژگیهای ارائهشده در زبان C به علاوهی ویژگیهای مهم دیگری مانند برنامهنویسی شیءگرا (object-oriented programming)، سربارگذاری اپراتور (operator overloading)، مدیریت خطا و استثناء (exception and error handling)، ویژگی فضای نام (namespace) و ویژگیهای بسیاری دیگر بهرهمند است. میتوانیم بگوییم که C++ نسخهی پیشرفتهی زبان برنامهنویسی C است. ویژگیهای C++ دلایل مختلفی را برای ارتقاء مهارتهایتان از C به C++ به شما ارائه میدهد.
بیاید ویژگیهای مهم C++ را بررسی کنیم:
در اینجا به برخی از ویژگیهای برجسته زبان C++ اشاره میشود:
C++ زبان برنامهنویسی شیءگرا است، برخلاف C که یک زبان دستور است. این یکی از مهمترین ویژگیهای C++ است. C++ از اشیاء در هنگام برنامهنویسی استفاده میکند. این اشیاء به شما کمک میکنند که همزمان مشکلات مبتنی بر انتزاع داده (data abstraction)، کپسولهسازی داده (data encapsulation)، مخفیسازی داده (data hiding) و پلیمورفیسم (polymorphism) را پیادهسازی کنید. ما به طور خلاصه 5 مفهوم اصلی برنامهنویسی شیءگرا را توضیح میدهیم.
مفاهیم OOP این موارد هستند:
انتزاع داده (Data Abstraction): انتزاع داده نشاندهندهی ویژگیهای مهم داده بدون شامل شدن جزئیات پسزمینه یا متدهای اعمال شده برای به وجود آوردن آن است.
کپسولهسازی داده (Data Encapsulation): کپسولهسازی چیزی جز فرایند پیادهسازی انتزاع داده توسط دادهها و توابع جمع شده در یک بلاک اختصاصی نیست.
ارثبری (Inheritance): اصطلاح ارثبری اشاره به انتقال خاصیتهای (properties) کلاس والد به کلاس فرزند دارد. ما میتوانیم ارثبری را با ایجاد کردن بیش از یک کلاس پیادهسازی کنیم که رسما به عنوان کلاسهای مشتقشده که با چیزی که کلاس پایه مینامیم، لینک شدهاند. این مفهوم موارد زاید و اضافی را از برنامه کاهش میدهد و انتقال یا کپی ویژگیها را از یک کلاس به کلاس دیگر آسان میکند.
مخفیسازی دادهها (Data Hiding): مخفیسازی داده به محافظت دادهها از دسترسیهای غیرمجاز اشاره دارد. اساسا مسئول حفاظت کردن از دادهها است. این مهم است که توجه کنید که کپسولهسازی دادهها (data encapsulation) با مخفیسازی دادهها متفاوت است. به طوری که تمرکز اساسی کپسولهسازی روی تغییر دادههای مهم است تا توضیح ماهیت پیچدهاش.
پلیمورفیسم (Polymorphism): کلمهی poly به معنی «زیاد» و morphism به معنی «اشکال» است. واضح است که polymorphism به نمایش دادههایی که بیش از یک شکل دارند، اشاره دارد.
از آنجایی که C++ مستقل از پلتفرم نیست، در نتیجه برنامههای کامپایلشده روی یک سیستمعامل بر روی سیستم عامل دیگری اجرا نخواهد شد. اما در شرایط دیگر، قابلیت حمل به استفاده از قطعه کُد مشابه در محیطهای مختلف اشاره دارد.
اجازه دهید این ویژگی C++ را با کمک یک مثال متوجه شویم. فرض کنید قطعه کدی برای پیدا کردن نام، سن و حقوق یک کارمند در مایکروسافت ویندوز نوشتهاید و به دلیل میخواهید از سیستمعاملتان به لینوکس سویچ کنید. این کد به همان طریق که در ویندوز کار میکرد، کار خواهد کرد.
هنگامی که با یک زبان جدید شروع به کار میکنیم، انتظار داریم که به طور عمیق متوجه شویم. قالب سادهی C++ جذابیتی را برای برنامهنویسانی که مشتاق یادگیری زبان برنامهنویسی جدید هستند، ارائه میدهد.
اگر از قبل با زبان C آشنا هستید، پس نباید نگران روبرو شدن با هر مسئلهای در هنگام کار کردن با C++ باشید. نحوه syntax در C++ تقریبا مشابه زبان C است. در حقیقت C++ به عنوان C with classes شناخته میشود.
مهم است که توجه کنید که C++ یک زبان برنامهنویسی سطح بالا است. برخلاف C که یک زبان برنامهنویسی سطح میانی (mid-level) است و این مورد کار کردن با C++ را به عنوان یک زبان سطح بالا برای کاربر راحتتر میکند، به طوریکه ارتباط نزدیکی با زبان قابل درک انسان که انگلیسی است، دارد.
بعد از یادگیری C، زبان C++ زبانی پایه برای بسیاری از زبانهای برنامهنویسی محبوب دیگر است که از ویژگی برنامهنویسی شیءگرا پشتیبانی میکنند. بییارنه استراستروپ (Bjarne Stroustrup) Simula 67 را که اولین زبان شیءگرا که تاکنون فاقد شبیهسازی (simulations) بود را پیدا کرد و تصمیم گرفت C++ را توسعه دهد.
درست مثل زبان C، خیلی واضح است که زبان برنامهنویسی C++ با حروف بزرگ و کوچک به طور متفاوت رفتار خواهد کرد. برای نمونه، معنی کلمهی کلیدی «cout» تغییر میکند اگر آن را به صورت «Cout» یا «COUT» بنویسیم. دیگر زبانهای برنامهنویسی مانند HTML یا MySQL حساس به حروف کوچک و بزرگ نیستند.
برخلاف جاوا و پایتون که مبتنی بر تفسیر (interpreter-based) هستند، C++ یک زبان مبتنی بر کامپایلر (compiler-based) است و بنابراین نسبتا سریعتر است نسب به پایتون و جاوا.
از آنجایی که C++ استفاده از اشارهگرها را پشتیبانی میکند، به ما اجازهی تخصیص حافظه به طور پویا را میدهد. حتی شاید ما از سازندهها (constructors) و مخربها (destructors) در هنگام کار کردن با کلاسها و اشیاء در C++ استفاده کنیم.
زبان برنامهنویسی C++ یک کتابخانه سرشار از توابعی که کارها را برای برنامهنویس ساده میکند، ارائه میدهد. این توابع میتوانند با قرار دادن فایلهای هِدر (header files) مناسب، در دسترس قرار بگیرند.
همانطور که قبلا گفته شد، C++ زبانی مبتنی بر کامپایلر است و بنابراین نسبت به دیگر زبانهای برنامهنویسی مانند پایتون و جاوا که مبتنی بر تفسیر هستند، سریعتر است.
در اینجا، ما ویژگیهای برجستهی C++ را بررسی کردیم تا انگیزهای برای برنامهنویسان تازهکار باشد تا این زبان را یاد بگیرند، چرا که ویژگیهایی که این زبان ارائه میدهد، آن را منحصربهفرد و غالب کرده است. با توجه به Tiobe index زبان C++ جایگاه چهارم را دارد. در حال حاضر، بسیاری از صنایع در حال استفاده از C++ هستند و در آیند میتوانیم نرمافزارهای کاربردی بلادرنگ (real-time) بسیار بیشتری را ببینیم.
منبع: وب سایت data-flair
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.