C++ Home
به قلمروِ قدرتمندترین زبان دنیا خوش آمدید! 👑🌐
زبان C++ (سیپلاسپلاس) همان زبانی است که موتورهای بازیسازی، مرورگرها، سیستمهای معاملاتی بورس و حتی سیستمعاملهای پیچیده بر پایه آن ساخته شدهاند. اگر به دنبال اوجِ قدرت و کنترل روی سختافزار در کنارِ ظرافتِ برنامهنویسی مدرن هستید، درست آمدهاید.
۱. چرا C++ هنوز پادشاه است؟
در حالی که زبانهایی مثل پایتون یا جاوا به دلیل سادگی محبوب هستند، C++ به دلیل عملکرد خام (Raw Performance) بیرقیب است. این زبان به شما اجازه میدهد تا آخرین بیتهای حافظه را مدیریت کنید و همزمان از مفاهیمِ پیشرفتهای مثل کلاسها و تمپلیتها استفاده کنید.
۲. میراثِ بییارنه استراستروپ (Bjarne Stroustrup)
در سال ۱۹۷۹، بییارنه در آزمایشگاههای بل تصمیم گرفت زبان C را با قابلیتهای "شیءگرایی" ترکیب کند. نتیجه را "C with Classes" نامیدند که بعدها به C++ تبدیل شد. علامت ++ نمادِ "افزایش" (Increment) است و نشان میدهد که C++ گامی فراتر از C برداشته است.
تکنولوژیهای ساخته شده با C++:
- موتور Unreal Engine (بازیهای گرافیکی سنگین)
- مرورگر گوگل کروم (Chrome)
- فتوشاپ و نرمافزارهای Adobe
- سیستمهای ناسا (NASA) برای مریخنوردها
بخش تخصصی: مهندسی و معماری C++ 🚀⚙️⚡
زبان C++ فقط یک نسخه ارتقا یافته از C نیست؛ بلکه یک هیولای چندوجهی است که قدرت سختافزاری C را با انتزاعهای سطح بالای مدرن ترکیب میکند.
۱. فضای نام (Namespace): خروج از بحران تداخل نامها
در زبان C، اگر دو کتابخانه تابعی با نام print() داشتند، شما دچار مشکل بزرگی میشدید. در C++ مفتی به نام Namespace معرفی شد. تمام توابع استاندارد در فضای نام std قرار دارند. این به این معناست که std::cout یعنی از شیء cout که در "قلمرو" استاندارد است استفاده کن.
۲. معماری I/O و امنیت نوع (Type Safety)
در C ما از printf استفاده میکردیم که یک تابع Variadic است و خطرات امنیتی زیادی دارد. اما در C++ ما از Streams استفاده میکنیم. عملگر << (Insertion Operator) هوشمند است؛ یعنی خودش میفهمد شما دارید یک عدد میفرستید یا یک متن، بدون اینکه نیاز به %d یا %s باشد.
۳. خط لوله کامپایل (The C++ Compilation Pipeline)
وقتی دکمه Run را میزنید، C++ مراحل پیچیدهای را طی میکند:
- Preprocessor: هدرها (مثل iostream) را کپی میکند.
- Compiler: کد را به اسمبلی تبدیل میکند. در اینجا C++ از تکنیکی به نام Name Mangling استفاده میکند تا سربارگذاری توابع (Overloading) ممکن شود.
- Linker: کدهای شما را به کتابخانههای سیستم متصل میکند تا فایل اجرایی نهایی ساخته شود.
std::endl علاوه بر شکستن خط، بافر را هم خالی (Flush) میکند. اگر سرعت بسیار بالا نیاز دارید، از \n استفاده کنید تا سیستمعامل هر بار مجبور به تخلیه بافر نشود.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
ساختار کلی یک برنامه C++ را بنویسید که شامل هدر iostream و فضای نام std باشد و در تابع main هیچ کاری انجام ندهد.
#include <iostream>
using namespace std;
int main() {
return 0;
}
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.