دوره‌ها / آموزش برنامه‌نویسی C++ / C++ Syntax

C++ Syntax

30 دقیقه Article

نحو و ساختار: کالبدشکافی کدِ C++ 🧬🔬

درکِ سینتکس (Syntax) یعنی فهمیدنِ قوانینِ نگارشیِ زبان. اگر سینتکس را رعایت نکنید، کامپایلر با شما قهر خواهد کرد!

۱. خط به خط با یک برنامه استاندارد

{code_block('#include <iostream>\nusing namespace std;\n\nint main() {\n cout << "Hello!";\n return 0;\n}')}

۲. بخش‌های اصلی:

  • #include <iostream>: کتابخانه‌ای که به ما اجازه می‌دهد ورودی و خروجی داشته باشیم.
  • using namespace std: یعنی به جایِ std::cout می‌توانیم مستقیماً بنویسیم cout.
  • int main(): نقطه‌ی شروعِ تمامِ برنامه‌های C++. هیچ کدی خارج از main (مگر برایِ تعریف) اجرا نمی‌شود.
  • { }: شروع و پایانِ یک بلوکِ کد.
  • ; (Semicolon): پایان‌دهنده‌ی دستورات. فراموش کردنِ آن رایج‌ترین اشتباه است!
حساسیت به حروف (Case Sensitivity): در C++، متغیرِ myVar با myvar کاملاً متفاوت است. مراقب باشید!
فضای سفید (Whitespace): کامپایلر به فاصله‌های خالی و اینترها اهمیت نمی‌دهد؛ آن‌ها را فقط برای خواناییِ بهترِ چشمِ انسان استفاده می‌کنیم.

چرا return 0؟

برگرداندنِ عددِ صفر به سیستم‌عامل می‌گوید که برنامه "با موفقیت" و بدونِ خطا به پایان رسیده است.

<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: مهندسی و معماری 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 استفاده کنید تا سیستم‌عامل هر بار مجبور به تخلیه بافر نشود.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

اصلاح سینتکس Medium
سوال تمرین

کد زیر را طوری اصلاح کنید که بدون خطا کامپایل شود. هدف چاپ OK است.

پاسخ تمرین
CPP
#include <iostream>
using namespace std;

int main() {
  cout << "OK";
  return 0;
}

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.