زبان برنامه نویسی ++C یک زبان برنامه نویسی دارای تایپ static ، کامپایل شده، multi-paradigm و همه منظوره است که به دلیل شیب تند منحنی یادگیری خود کمی بدنام است. این زبان کاربرد گستردهای در بازیهای ویدیویی، نرم افزارهای دسکتاپ و توسعه سیستم تعبیهشده دارد.
زبان برنامه نویسی ++C تا حدودی پیچیده و فوقالعاده قدرتمند است. و صادقانه بگوییم، اگر نقشه راه یادگیری خود را به درستی برنامهریزی کنید، ++C آنقدرها هم که مردم فکر میکنند سخت نیست.
اما اکنون بیایید کمی به تاریخ برنامه نویسی، و اینکه C++ از کجا متولد شد بپردازیم.
در روزهای اولیه برنامه نویسی کامپیوتر، برنامه نویسان مجبور بودند دستورالعملهای individual را تک تک و به زبان Assembly بنویسند.
بعدها زبانهای برنامه نویسی مانند FORTRAN و COBOL ایجاد شدند. مشکل این زبانها این بود که گروه خاصی از مردم را هدف قرار میدادند. FORTRAN برای مهندسان و دانشمندان و COBOL برای افراد فعال در حوزه بیزنس.
سپس در طول دهه 60، زبان جدیدی به نام Simula ظاهر شد و مفهوم یک کلاس را معرفی کرد، که به نوعی به هرکسی اجازه میداد برای حوزههای خاص خود نرم افزار بسازد.
پس از آن، در دهه 80، بیارن استروستراپ ایده ترکیب انتزاع کلی Simula را با عملکردهای سطح پایین C ، که در آن زمان بهترین زبان برای این کار بود، مطرح کرد.
بنابراین “C with Classes” متولد شد که بعدها به زبان برنامه نویسی ++C معروف شد.
در این مقاله، من با نشان دادن اصول اولیه زبان برنامه نویسی ++C شروع میکنم.
اگر قبلاً به عنوان برنامهنویس جونیور یا سینیور برنامهنویسی کردهاید، این مطلب برای شما بسیار ساده خواهد بود. اما اگر ++C را بهعنوان اولین زبان برنامهنویسی خود یاد میگیرید، ممکن است به دلیل مفاهیم زیادی که باید درک کنید، بسیار چالش برانگیز به نظر برسد.
بررسی اجمالی ++C
قبل از ورود به بخش نقشه راه و منابع یادگیری، میخواهم شما را با خود زبان برنامه نویسی ++C آشنا کنم. به خاطر داشته باشید که این بخش از مقاله فرض می کند که شما تجربه کار با برخی از زبانهای برنامه نویسی دیگر مانند Python یا JavaScript را دارید.
Hello World
همانطور که قبلاً اشاره کردم، C++ یک زبان برنامه نویسی تایپ شده و کامپایل شده است و تعدادی کامپایلر در آن وجود دارد.
مجموعه کامپایلر GCC یا GNU یکی از محبوبترین کامپایلرها برای C++ است.
بسته به distribution لینوکس شما، یکی از دستورات زیر باید GCC را برای شما نصب کند:
# Debian/Ubuntu
sudo apt install build-essential
# Fedora
sudo dnf install make automake gcc gcc-++C
# Arch Linux
sudo pacman -S base-devel
در مک، می توانید GCC را با استفاده از Homebrew نصب کنید.
به غیر از GCC، کامپایلر MSVC یا Microsoft Visual ++C نیز در ویندوز وجود دارد. برای نصب MSVC، به https://visualstudio.com بروید، آخرین نصب کننده را دانلود کنید و workload به نام «Desktop Development with ++C» را نصب کنید:

پس از انجام این کار، باید بتوانید برنامه های زبان برنامه نویسی ++C را روی کامپیوتر خود بنویسید و کامپایل کنید. برای انجام این کار، یک فایل hello-world.cpp در جایی از کامپیوتر خود ایجاد کنید و کد زیر را در آن قرار دهید:
#include
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
اکنون اگر از GCC استفاده می کنید، یک پنجره ترمینال در همان لیستی که فایل hello-world.cpp وجود دارد باز کنید و دستور زیر را اجرا کنید:
g++ -o hello-world hello-world.cpp
این دستور hello-world.cpp را در فایل مشخص شده در آپشن -o کامپایل میکند. شما باید یک فایل باینری جدید به نام hello-world را در همان پوشه ببینید. فایل را از ترمینال به صورت زیر اجرا کنید:
./hello-world
# Hello World!
اگر از MSVC استفاده می کنید، Start menu را باز کنید و “Developer PowerShell” را جستجو کنید و برنامه مناسب را مطابق نسخه Visual Studio خود باز کنید:

حالا cd را در دایرکتوری که فایل hello-world.cpp خود را در آن ذخیره کردهاید، وارد کنید و دستور زیر را اجرا کنید:
cl -o hello-world hello-world.cpp
مانند دستور g++ ، این فایل hello-world.cpp شما را در یک فایل اجرایی باینری hello-world.exe کامپایل میکند. با استفاده از دستور زیر فایل را اجرا کنید:
.\hello-world.exe
# Hello World!
آشنایی با یک برنامه نوشته شده به زبان برنامه نویسی ++C
اکنون که اولین برنامه خود به زبان برنامه نویسی ++C را نوشتهاید، زمان آن رسیده است که بفهمید چه کاری انجام دادهاید. بیایید یک بار دیگر به source code نگاهی بیندازیم:
#include
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
source file در مجموع دارای چهار خط کد است. خط اول #include <iostream> است و دقیقاً همان چیزی را که به نظر میرسد انجام میدهد. این شامل محتوای فایل هدر iostream در فایل hello-world.cpp است.
فایل های هدر حاوی اعلان چیزهایی مانند object های std::cout و std::endl هستند. فایل هدر iostream با stream های ورودی و خروجی سروکار دارد.
بعد از دستور #include ، خطوط int main(){} یک تابع جدید را اعلام و تعریف میکند. این تابع ()main زمانی که برنامه خود را اجرا میکنید توسط سیستم عامل فراخوانی میشود و هر برنامه ++C قابل اجرا باید تابع main() را داشته باشد.
هر چیزی که در {} ها مینویسید بخشی از این تابع خواهد بود. در کد فوق، object std::cout هر رشتهای را که بعد از علامت << می آید چاپ میکند. object به نام std::endl یک کاراکتر خط جدید را در انتهای خط اضافه میکند. میتوانید چندین چیز را برای خروجی در یک call به نام std::cout به صورت زیر chain کنید:
#include
int main() {
std::cout << "Hello World!" << " " << "++C is awesome!" << std::endl;
return 0;
}
اگر این برنامه را کامپایل و اجرا کنید، خروجی زیر را دریافت خواهید کرد:
Hello World! ++C is awesome!
کلمه int در اعلان تابع به این معنی است که این تابع یک عدد صحیح را برمیگرداند. برگرداندن 0 در پایان یک برنامه به معنای اجرای موفقیت آمیز آن است. مقدار بازگشتی غیر 0 معمولاً نوعی خرابی را نشان می دهد، اما آن موضوع خارج از محدوده این مقاله است.
انواع دادهها و آرایههای رایج (Data Types and Arrays) در ++C
++C دارای هفت نوع داده اساسی است. آنها به شرح زیر هستند:
نوع داده |
معنی |
int |
عدد صحیح (Integer) |
float |
اعداد ممیز شناور (Floating Point) |
double |
اعداد ممیز شناور دوبل (Double Floating Point) |
char |
کاراکتر (Character) |
w_char |
کاراکتر عریض (Wide Character) |
bool |
Boolean |
void |
خالی |
اصلاحکنندههایی مانند short ، long ، signed و unsigned هم وجود دارد، اما من در این بررسی سطح بالا به آنها اشاره نمیکنم.
برای اعلام یک متغیر از یک نوع داده خاص، می توانید کاری شبیه به این انجام دهید:
#include
int main() {
int number = 25;
std::cout << "The number is " << number << std::endl;
return 0;
}
اگر این برنامه را کامپایل و اجرا کنید، خروجی به صورت زیر خواهد بود:
The number is 25
همچنین آرایههایی وجود دارند که میتوانند چندین مقدار از یک نوع را ذخیره کنند. بنابراین اگر میخواهید یک آرایه از نوع int را اعلام کنید، میتوانید این کار را به صورت زیر انجام دهید:
#include
int main() {
int numbers[] = { 1, 2, 3, 4, 5 };
std::cout << "The number is " << numbers[0] << std::endl;
return 0;
}
شما میتوانید به هر عنصری از آرایه که از دستور array_name[element_index] استفاده میکند دسترسی داشته باشید. Index های آرایه مبتنی بر صفر هستند، بنابراین برای دسترسی به عنصر شماره یک، باید numbers[0] را بنویسید و خروجی کد بالا به صورت زیر خواهد بود:
The number is 1
همچنین میتوانید رشتههایی را با استفاده از آرایههایی از نوع char به صورت زیر ایجاد کنید:
#include
int main() {
char name[] = "Farhan";
std::cout << "My name is " << name << std::endl;
return 0;
}
خروجی این برنامه به صورت زیر خواهد بود:
My name is Farhan
std::string نیز وجود دارد اما من به آن اشاره نمی کنم.
کنترل جریان داده (Flow Control) در ++C
در زبان برنامه نویسی ++C روش های متداولی برای کنترل جریان دادههای برنامه شما وجود دارد. مانند دستورهای if-else، دستورهای switch ، loop ها، break ها و غیره.
در این بخش، نمونهای از if-else، for loop و دستور break را به شما نشان میدهم.
به برنامه زیر نگاهی بیندازید:
#include
int main() {
int numbers[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (auto number : numbers) {
if (number == 5) {
std::cout << number << std::endl;
break;
}
}
return 0;
}
این یک برنامه ساده است که روی آرایهای از اعداد صحیح loop میزند و بررسی میکند که آیا عنصر فعلی 5 است یا خیر. اگر اینطور باشد، برنامه شماره را پرینت میکند و از loop خارج میشود. این همچنین میتواند با استفاده از یک loop for با ویژگی range-based به شرح زیر انجام شود:
#include
int main() {
int numbers[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < 10; i++) {
if (numbers[i] == 5) {
std::cout << numbers[i] << std::endl;
break;
}
}
return 0;
}
auto keyword به طور خودکار نوع متغیر را مشخص میکند. این syntax دوباره از محدوده این مقاله خارج است، اما من فقط میخواستم به شما نشان دهم که در زبان برنامه نویسی ++C چه کاری می توانید انجام دهید.
توابع ++C
مانند هر زبان برنامه نویسی دیگری، ++C نیز دارای توابع است. شما میتوانید تابعی به صورت زیر ایجاد کنید:
#include
int add(int a, int b) {
return a + b;
}
int main() {
std::cout << "The sum is " << add(8, 2) << std::endl;
return 0;
}
در این مثال، من تابعی به نام add() ایجاد کردم که یک int برمیگرداند و int a و int b را به عنوان پارامتر میگیرد.
وقتی این تابع را فراخوانی میکنید و دو عدد صحیح به آن میدهید، تابع به سادگی دو عدد را جمع کرده و مجموع آنها را برمیگرداند. این احتمالا ساده ترین شکل تابع در زبان برنامه نویسی ++C است. در واقعیت، توابع میتوانند بسیار پیچیدهتر از این باشند.
نتیجهگیری
میخواهم از صمیم قلب بابت وقتی که برای خواندن این مقاله صرف کردید از شما تشکر کنیم. امیدوارم چیزهای ارزشمندی از این مقاله یاد گرفته باشید و آنها را به خاطر بسپرید.
نقل قول
تنها راه برای یاد گرفتن یک زبان برنامه نویسی، نوشتن برنامه در آن است. دنیس ریچی
بنابراین به استفاده از آنچه در مورد زبان برنامه نویسی ++C یادگرفتهاید ادامه دهید. پروژههای عجیب و غریب بسازید، آنها را در Github به اشتراک بگذارید، و در کمترین زمان به یک جادوگر ++C تبدیل خواهید شد.