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

C++ Comments

30 دقیقه Article

توضیحات (Comments): نامه‌هایی به آینده 📝🕰️

توضیحات کدهایی هستند که توسط کامپایلر نادیده گرفته می‌شوند. هدفِ آن‌ها توضیح دادنِ "چراییِ" یک کد برایِ خودتان (در آینده) و بقیه‌یِ همکارانتان است.

۱. توضیحاتِ تک‌خطی (Single-line)

با دو اسلش // شروع می‌شوند و تا انتهایِ همان خط ادامه دارند.

{code_block('// این یک متغیر برای سن است\nint age = 25;')}

۲. توضیحاتِ چندخطی (Multi-line)

با /* شروع شده و با */ تمام می‌شوند.

{code_block('/*\n این یک الگوریتم کپسوله‌سازی است\n نویسنده: کُد نینجا\n*/')}
کدِ گویا: بهترین کامنت، کدی است که نیازی به کامنت ندارد! سعی کنید نامِ متغیرها را طوری انتخاب کنید که خودشان توضیح‌دهنده باشند. کامنت را برایِ منطق‌هایِ پیچیده نگه دارید.
غیرفعال‌سازی کد: گاهی اوقات برای تست کردنِ برنامه، بخشی از کد را کامنت می‌کنیم تا اجرا نشود. به این کار Comment out کردن می‌گویند.

استفاده حرفه‌ای:

در پروژه‌هایِ بزرگ، از کامنت‌ها برایِ تولیدِ خودکارِ داکیومنت (Doxygen) استفاده می‌شود.

تمرین: همیشه در ابتدایِ فایل‌هایِ خود یک کامنتِ چندخطی شاملِ نامِ پروژه و تاریخِ آخرین ویرایش بگذارید.
<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 استفاده کنید تا سیستم‌عامل هر بار مجبور به تخلیه بافر نشود.

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

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

پاکسازی با کامنت Easy
سوال تمرین

در کدِ زیر، خطی که باعثِ بروزِ خطا می‌شود را کامنت کنید تا فقط عبارتِ Correct چاپ شود.

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

int main() {
  cout << "Correct";
  // Error-Line-Here;
  return 0;
}

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

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