آموزش C++ قواعد اصلی

یک برنامه C++ را می توان به عنوان مجموعه ای از اشیا تعریف کرد که از طریق فراخوانی متدهای یکدیگر با هم در ارتباط هستند. به طور خلاصه مفهوم کلاس ،شی، متد و instant variables را در ادامه توضیح می دهیم.

توجه داشته باشید که تعریفات زیر به صورت کلی و جامع هستند و در آینده بیشتر با آنها آشنا خواهیم شد.

شی یا object

شی ها دارای خصوصیات و رفتارهای مختلف هستند. به عنوان مثال یک سگ دارای خصوصیاتی مانند رنگ، نام، نژاد و رفتارهایی مانند حرکت کردن، پارس کردن، خوردن و آشامیدن است. شی در واقع یک نمونه از یک کلاس است.

کلاس یا class

کلاس می تواند به عنوان یک قالب یا یک طرح تعریف شود که رفتار یا حالت های شی از آن پشتیبانی می کند. در مثال بالا سگ خود می تواند به عنوان یک کلاس مطرح گردد.

متد یا method

متد اساساً یک رفتار است و یک کلاس می تواند شامل چندین متد باشد. در واقع در متد ها، منطق ها نوشته می شوند، داده ها دستکاری یا تعییر داده می شوند و تمام اقدامات انجام می شود.

متغیرهای نمونه

هر شی دارای مجموعه منحصر به فردی از متغیرهای نمونه است. حالت شی توسط مقادیر اختصاص داده شده به این متغیرهای نمونه ایجاد می شود. متغیرهای نمونه در داخل کلاس اما در بیرون از بدنه متد تعریف می شوند.

ساختار ++C

به یک کد ساده که کلمات hello world را چاپ میکند نگاه کنید:

#include <iostream>
using namespace std;

// main() is where program execution begins.
int main() {
   cout << "Hello World"; // prints Hello World
   return 0;
}

حال نگاهی به بخشهای مختلف این کد میاندازیم:

  •  زبان ++C چندین header که حاوی اطلاعات ضروری و یا غیر ضروری برای برنامه شما هستند را تعریف می کند که header مورد نیاز برای این برنامه <iostream> است.
  •  خطی که در آن فضای نام std نوشته شده است، به کامپایلر می گوید که ازفضای نام std استفاده کند.
  • // main() is where program execution begins. این خط یک توضیح تک خطی است که در++C در دسترس است. کامنت های تک خطی ب // آغاز میشوند.
  • خط int main() تابع اصلی است که در آن اجرای برنامه شروع می شود.
  • خط بعدی cout << "Hello World"؛ باعث می شود که پیام "Hello World" بر روی صفحه، نمایش داده شود.
  • خط بعدی تابع main() را خاتمه می دهد و مقدار صفر را برمی گرداند.

کامپایل و اجرای برنامه C++

بیایید به چگونگی ذخیره فایل، کامپایل و اجرای یک برنامه نگاه بیاندازیم. لطفا مراحل زیر را دنبال کنید:

  • یک ویرایشگر متن را باز کنید و کدهای نمونه بالا را به آن اضافه کنید.
  • فایل را با نام: hello.cpp ذخیره کنید.
  • یک command prompt را باز کنید و به دایرکتوری که فایل را ذخیره کرده اید بروید. (در باکس جستجوی استارت ویندوز عبارت Command Prompt را تایپ کنید و برنامه را اجراکنید)
  • g++ hello.cpp را بنویسید وenter را بزنید تا کدهای شما کامپایل شود. اگر خطایی در کدهای شما وجود نداشته باشد، command prompt شما را به خط بعد منتقل می کند و فایل قابل اجرای a.out یا a.exe را در پوشه برنامه تولید می کند.
  • حالا، "a.out یت a.exe" را تایپ کنید تا برنامه شما اجرا شود.
  • شما قادر خواهید بود که "Hello World" را بر روی پنجره چاپ کنید.
$ g++ hello.cpp
$ ./a.out
Hello World

اجرای فایل cpp در command Prompt

توجه:

اطمینان حاصل کنید که g++ در path شماست و شما آن را در پوشه حاوی فایل hello.cpp اجرا می کنید.

بلاک ها و semicolon (نقطه ویرگول ها) در C++

علامت نقطه ویرگول یا سمی کالن ";" در ++C بعنوان پایانه دهنده یا خاتمه دهنده دستور استفاده میشود. بدین ترتیب، هر یک از دستورات باید با یک سمی کالن به پایان برسد. این نشان دهنده پایان یک موجودیت منطقی است.
به عنوان مثال، سه دستور مختلف زیر را ببینید:

 

x = y;
y = y + 1;
add(x, y);

یک بلاک مجموعه ای از دستورات منطقی پیوسته است که توسط براکت ها های باز و بسته "{}" احاطه شده است. مثال:

{
   cout << "Hello World"; // prints Hello World
   return 0;
}

C++ پایان خط را به عنوان پایان دستورات تشخیص نمی دهد. به همین دلیل مهم نیست در یک خط دستورات را در کجا قرار می دهید. مثال:

x = y;
y = y + 1;
add(x, y);

برابر است با

x = y; y = y + 1; add(x, y);

شناسه ها در C++

  • یک شناسه نامی است که برای شناسایی متغیر، تابع، کلاس، ماژول یا هر مورد دیگر تعریف شده و توسط کاربر استفاده می شود. 
  • یک شناسه با یک حرف از (A تا Z) یا (a تا z) یا underscore (_) به همراه صفر یا چند حرف، underscore و رقم (0 تا 9) شروع می شود.
  • ++C از نشانه های خاصی مثل @، $ و % در تعریف شناسه ها پشتیبانی نمی کند و همچنین یک زبان برنامه نویسی حساس به حروف است. برای مثال Manpower با manpower متفاوت است و دو شناسه جدا به حساب می آیند.

در اینجا چند نمونه از شناسه های قابل قبول وجود دارند:

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

کلمات کلیدی (keywords) در C++

لیست زیر لیست کلمات ذخیره شده در C++ را نشان می دهد. این کلمات رزرو شده به عنوان ثابت (constant) یا متغیر (variable) یا شناسه (identifier) نمی توانند استفاده شوند.

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template

تریگراف ها یا Trigraphs

Trigraphs کاراکترهای ویژه ترتیبی یا متوالی هستند که در موقع عدم پشتیبانی سیستم از نوع ۷ بیتی اَسکی (ASCII) همانند ایزو 646 استفاه می شوند.برای مثال تریگراف "=??" کاراکتر ویژه‌ای مانند "#" را تولید می‌کند. چند کاراکتر ویژه دارای جایگزین هستند که دنباله تریگراف نامیده می شوند. یک trigraph یک دنباله سه کاراکتری است که یک کاراکتر ویژه را نشان می دهد که عموما به همراه دو کارکتر"??" شروع می شوند.
Trigraphs ها در هر جایی که باشند بسط داده می شوند. از جمله String literal و دستورات پیش پردازنده در comment ها. پر استفاده ترین دنباله تریگرافها در زیر قرار گرفته است.

 

Trigraph تریگراف یا جایگزین
??= #
??/ \
??' ^
??( [
??) ]
??! |

همه کامپایلرها از trigraph ها پشتیبانی نمی کنند و توصیه می شود که به دلیل ماهیت گیج کننده آنها مورد استفاده قرار نگیرد.

فضای خالی یا whitespace در ++ C

فضای خالی در ++C اصطلاحی برای توصیف   توضیحات (comments)، خط جدید (new line)، تب ها (Tabs) و فاصله ها است.

کامپایلر C++ خطی را که فقط دارای فضای خالی یا توضیحات (comment) باشد را نادیده می گیرد.

با ایجاد فضای خالی در بین دستورات می توانید بخش های مختلف دستورات را از یکدیگر جدا کرده که به این صورت کامپایلر را قادر می سازید که تشخیص دهد کدام یک از عناصر در یک عبارت، مانند int، به پایان می رسد و عنصر بعدی شروع می شود.

مثال 1

int age;

در مثال بالا باید حداقل یک فضای خالی بین int و age بایتی وجود داشته باشد تا کامپایلر بتواند آن ها را از یکدیگر تشخیص دهد.
مثال 2

fruit = apples + oranges;   // Get the total fruit

در مثال شماره 2 فضای خالی بین fruit و =، = و apples الزامی نیست و تنها برای خوانایی بیشتر برنامه اضافه شده است.
 

 

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید