کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

ساختارsyntax زبان C++

ساختار نگارشی و syntax زبان ++C

پس از بررسی یک اپلیکیشن ساده ی ++C، متوجه می شوید که برنامه ی مورد نظر متشکل از تعدادی آبجکت است که با فراخوانی توابع یکدیگر، با هم تعامل کرده و اطلاعات رد و بدل می کنند. در زیر به شرح مفهوم هر یک از اجزا تشکیل دهنده ی کلاس می پردازیم:


  • Object: آّبجکت ها دارای property (خاصیت و ویژگی) و رفتارهای (عملیاتی که قادر به انجام آن ها است) معینی می باشند. به طور مثال، یک سگ در دنیای برنامه نویسی می تواند یک آبجکت باشد چرا که علاوه بر property هایی (خواص) نظیر رنگ، اسم، نژاد دارای رفتارهای متعددی همچون دم تکان دادن، پارس کردن، خوردن می باشد. آبجکت در واقع نمونه ای از یک کلاس می باشد و کلاس الگویی است که آبجکت از روی آن ساخته می شود.
  • Class: یک کلاس را می توان یک نقشه یا الگو در نظر گرفت که آبجکت از روی آن ساخته می شود و در واقع رفتارها (عملیاتی که قادر به انجام آن ها می باشد) و داده هایی (state) که آبجکت از نوع مربوطه پشتیبانی می کند را مشخص می نماید.
  • Methods: متد در واقع حکم همان رفتار آبجکت و عمیاتی که قادر به انجام آن ها است را دارد. یک کلاس می تواند چندین متد داشته و کارهای مختلفی انجام دهد. داخل متد است که منطق اپلیکیشن نوشته شده، داده ها ویرایش می شود و عملیات مختلف اجرا می گردد.
  • instance variable: هر آبجکت مجموعه متغیرهای عضو (instance variable) مخصوص خود را دارد. اطلاعات مربوط به وضعیت آبجکت و داده های کپسوله شده در آن توسط مقادیری که توسعه دهنده به متغیرهای عضو تخصیص می دهد، مشخص می گردد.

ساختار نحوی برنامه های ++C

در زیر یک برنامه ی ساده را مشاهده می کنید که با ++C نوشته شده و رشته ی متنی Hello World را در نمایشگر چاپ می کند.


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

حال به شرح بخش های مختلف برنامه ی فوق می پردازیم:

  • در زبان ++C یک سریی فایل به نام header file با پسوند .h وجود دارد که تعریف کلاس ها در آن قرار می گیرد. این فایل ها در واقع اطلاعات مورد نیاز و ضروری درباره ی برنامه را در بر می گیرد. برای برنامه حاضر لازم است فایل کتابخانه ای header را وارد پروژه نمایید.
  • خط using namespace std، به کامپایلر دستور می دهد که namespace ای به نام std را فراخوانی کند. namespace (فضای نامی) به تازگی وارد زبان ++C شده اند.
  • خط بعدی // main() is where program execution begins می باشد. این خط یک comment تک خطی (خط توضیح کد) است که با کاراکتر // آغاز شده و با کاراکتر . خاتمه می یابد.
  • متد int main() تابع اصلی است که اجرای برنامه از آنجا آغاز شده و در واقع نقطه ی آغاز اپلیکیشن می باشد.
  • خط cout << "This is my first ++C program."; از برنامه ی حاضر در واقع رشته ی متنی "This is my first ++C program" را در نمایشگر برای کاربر چاپ می کند.
  • آخرین خط از قطعه کد فوق، return 0; ، در واقع نقطه ی پایان اجرای تابع main() بوده و مقدار 0 را در خروجی برمی گرداند (این مقدار را به process فراخواننده پاس می دهد).

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

اکنون به شرح نحوه ی ذخیره ی فایل ذکر شده، کامپایل و اجرای آن می پردازیم.
مراحل زیر را به ترتیب دنبال نمایید:

  • یک نرم افزار ویرایشگر متن / text editor باز کرده و کد بالا را در آن درج نمایید.
  • فایل را تحت عنوان hello.cpp ذخیره نمایید.
  • پنجره ی فرمان را باز کرده و به پوشه ای که فایل را در آن ذخیره کردید، پیمایش نمایید.
  • دستور 'g++ hello.cpp ' را وارد کرده و با فشردن کلید enter کد را کامپایل نمایید. چنانچه در کد شما خطایی وجود نداشته باشد، پنجره ی فرمان شما را به خط بعدی هدایت کرده و فایل اجرایی a.out را تولید می کند.
  • حال جهت اجرای برنامه ی خود، دستور ' a.out' را درج نمایید.
  • با اجرای دستور فوق، رشته ی ' Hello World ' در پنجره برای کاربر به نمایش در می آید.

$ g++ hello.cpp
$ ./a.out
Hello World

لازم است g++ در path وجود داشته و شما آن را در پوشه ای که فایل hello.ccp را دربردارد، اجرا نمایید.
می توانید برنامه های C/++C را با استفاده از makefile کامپایل نمایید.


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);

تخصیص نام یا شناسه (identifier) در ++C

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


mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

کلیدواژه ها (واژه های رزرو شده)

لیست زیر کلیدواژگان پرکاربرد در زبان ++C را برای شما به نمایش می گذارد. لازم به ذکر است که توسعه دهنده نمی تواند این کلمات رزرو شده را به عنوان اسم یک تابع یا متغیر انتخاب کند.


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

Trigraphs (توالی متشکل از سه کاراکتر)

تعدادی کاراکتر در ++C هستند که ظاهری متفاوت داشته و در اصطلاح یک sequence trigraph یا دنباله ی سه حرفی خوانده می شوند. trigraph در واقع یک کاراکتر واحد متشکل از سه کاراکتر مجزا است که معمولا با دو علامت سوال شروع می شود.
Trigraph ها می توانند در مقادیر رشته ای ثابت (string literal)، کاراکترهای ثابت (character literal) ، در comment و توضیحات کد و یا دستورهای پیش پردازنده/ preprocessor directives ظاهر شده و مورد استفاده قرار گیرند.
در زیر پرکاربردترین دنباله های سه کاراکتری یا trigraph ها مشاهده می کنید:


جایگزین
Trigraph
#
??=
\
??/
^
??'
[
??(
]
??)
|
??!
{
??<
}
??>
~
??-

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


خط فاصله یا whitespace در ++C

کامپایلر خطوطی در کد که تنها از فضای سفید یا خط فاصله تشکیل شده و گاهی یک comment را نیز شامل می شود، کاملا نادیده گرفته و ترجمه نمی کند.
whitespace واژه ای است که در ++C جهت توصیف خطوط فاصله، تب ها، کاراکاترهای newline و comment ها استفاده می شود.
whitespace یک بخش از دستور را از بخش دیگر مجزا ساخته و به کامپایلر این امکان را می دهد تا تشخیص دهد کجا یک آیتم در دستور، همچون int، خاتمه یافته و آیتم دیگری آغاز می شود. با توجه به توضیحات فوق، در دستور زیر:


int age;

بایستی حداقل یک کاراکتر whitespace بین int (نوع داده ای) و age (id و اسم متغیر) درج شود تا بدین وسیله کامپایلر بتواند بین این دو آیتم تمایز قائل شده و آن ها را از هم تشخیص دهد. اما در دستور ذیل:


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

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


1396/04/08 4571 1147
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...