Arvanttt

تند و سریع

Arvant

تند و سریع












فصل دوم :نگاهی به ++C

پنجشنبه, ۲۳ خرداد ۱۳۹۲، ۱۰:۴۱ ق.ظ

++C برای توسعه دهندگان بازی

Cocos2d-x بر پایه ++C بنا شده است بنابراین شما به دانش کافی در این زبان احتیاج دارید.این راهنمایی در حد یک راهنمای اجمالی از این زبان برنامه نویسی است و لازم است حتماَ با استفاده از منابع فارسی و انگلیسی که موجود است دانش برنامه نویسی خودتون رو در این زبان افزایش بدید .من به نوبه خودم کتاب خاصی رو معرفی نمی کنم ولی به نظرم کتاب های که بیشتر روی شی گرایی تاکید دارند رو مطالعه نماید .بنده به شخصه در در دوران تحصیل دل خوشی از کتاب های آقای قمی ندارم البته این نظر شخصی بندست:)

 

++C یک زبان کامپایلری است

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

در مقابل می توان از زبان های مفسری مانند php,Lua,python نام برد که برای هر بار اجرا نیاز به اجرا توسط مفسر مورد نظر دارند و این کار باعث افت شدید سرعت در مقابل زبان های کامپایلری می باشد .

از آنجا که سرعت در اجرای بازی ها یکی از ارکان اصلی است پس برای توسعه بازی بیشتر از زبان های کامپایلری مانند ++C استفاده می شود و در سطوح بالا تر معمولاَ می توان از زبان های مفسری استفاده کرد.

 

فایل های هدر و سورس 

در سی پلاس پلاس رابط اصلی کلاس ها و توابع مربوط به آن و همچنین متغیر های مورد نظر در سربرگ کلاس ها تعریف می شوند .از این سربرگ ها می توان اطلاعات کاملی در باره متدها و متغیر هایی که در کلاس استفاده می شود بدست اورد.پسوند این فایل ها h. می باشد.و با فراخوانی این سربرگ ها در سایر فایل های کد برنامه می توان از توابع و کلاس های موجود در سربرگ استفاده نمایید .

// In DoSomething.h:

// Forwardly-declare a function.
int doSomething(float parameter);

// Now any source file which includes DoSomething.h
// can call the doSomething() function.
.

کد های منبع شامل پیاده سازی کلاس ها و توابع آنها بر اساس فایل سر برگ می باشد.پسوند این فایل ها cpp. می باشد .

// In DoSomething.cpp:

// Concretely implement the function.
int doSomething(float parameter)
{
   return parameter * 5.0f;
}

سورس فایل ها به فایل های obj. کامپایل می شوند و توسط linker به هم پیوند داده می شوند تا در نهایت فایل اجرای ایجاد گردد.

 

درج توضیحات

در ++C دو راه برای درج توضیحات در برنامه موجود می باشد که یکی از آنها همان روشی است که در برنامه نویسی C استفاده می شود و قرار دادن توضیحات در بین دو علامت /*  */  می باشد.

/*
   Hi, I'm a C-style block comment. I can write
   whatever I want inside this block including
   gibberish:
   
   *&%&@%)(!&
   
   Everything will be considered a comment until   the compiler encounters a closing asterisk   and forward slash like so:
*/

راه دوم استفاده از علامت // برای درج توضیحات در هر یک خط می باشد.

// Hi, I am a comment and will be until the line ends.
int a = 1; // See, everything after the // is a comment.
a = 0;

تعریف متغیر

یکی دیگر از اساسی ترین ویژگی های ++C در این است که متغیر ها حتماَ باید تعریف شوند.

// This will give a compilation error because
// "someVar" is an undeclared identifier.
int a = someVar;

// Compiler error: Use of undeclared identifier 'someVar'.

// Now declare the variable and try again.
int someVar = 0;
int a = someVar; // okay

// Once a variable has been declared, it can be used
// again without declaration.
someVar = 7;
a *= someVar;

C یک زبان ساختار یافته 

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

// This a C function named "doSomething" that
// accepts a single float (floating point) parameter
// and returns an int (integer).
int doSomething(float parameter)
{
   // Double the parameter and return it.
   return parameter * 2.0f;
}

++C شی گراست

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

حتماَ همه شما کدهای شبی به اسپاگتی را دیده اید .کدهای که هر چه سعی می کنید که منطق ان را متوجه بشوید بیشتر سر درگم خواهید شد مسیری پر از پیج و خم های طولانی و بازگشت های غیر معقول همچنین مسیری واقعاَ سخت دنبال می شود .

اما ++C به شما کمک می کند که با استفاده از فلسفه شی گرایی و محدود کردن دسترسی به توابع و داده ها برنامه ای غیر وابسته  داشته باشید .در واقع هر رشته از اسپاگتی ها را به صورت تکی و راست در یک ظرف قرار می دهیم .و با استفاده از این روش پیدا کردن ابتدا و انتهای یک مسیر بسیار راحت است .

شی گرای به شما کمک می کند که یک کد تفکیک شده ، ماژولار و  انعطاف پذیر داشته باشید که بسیار خواناست.

نکته های برای خوانایی برنامه 

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

حتماَ در برنامه توابع و متغیر ها را با اسم های با مسما نام گذاری کنید برای فهم بیشتر .دندانه گذاری کد ها دیگر یکی از کمترین کارهایست که هر ادیتوری به صورت اتماتیک انجام میدهد پس همیشه ان را مد نظر داشته باشید چون هم برای درک کد و منطق برنامه به خود شما در هنگام نوشتن کد کمک می کند و برای چشم هم بسیار بهینه است و هم آنکه دیگران به راحتی می توانند آن را مطالعه نمایند.

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

  • موافقین ۱ مخالفین ۱
  • پنجشنبه, ۲۳ خرداد ۱۳۹۲، ۱۰:۴۱ ق.ظ
به اشتراک می گذارم : به اشتراک بگذاریم به اشتراک بگذاریم به اشتراک بگذاریم به اشتراک بگذاریم

نظرات  (۲)

من به تمامی دوستان پیشنهاد می کنم جهت یادگیری زبان های برنامه نویسی از کتابهای مرجع استفاده کنند. از نظر من برای شروع می توانید به ترتیب این الویتها از این انتشارات استفاده کنید .
1- for dummies
2-worx
3-packt
در ضمن  چون این کتبها قیمتهای زیادی دارند و در کتبخانه ها نیز به راحتی یافت نمی شود من سایت زیر را که به راحتی می توانید از انجا کتبها را دریافت نماید معرفی می نمایم
www/.it-ebooks.info
بازم تاکید می کنم جهت یادگیری بهتر برای کسانی که می خواهند بیشتر و بهتر یاد بگیرند کتبهای مرجع زبان اصلی فراموش نشه . البته من از طرف خودم از زحمات کسانی که برای هرچه غنی کردن محتوای وب فارسی زحمت می کشند تشکر می نمایم
خیلی ممنونم.
من هم کاملاَ با نظر شما موافقم و این مطلب هم جهت آشنایی کلی با زبان ++C هست و یادگیری این زبان و حرفه ای شدن در آن نه به این پست بلکه حتی با اون کتاب ها هم نمی انجامد و باید بسیار پروژه باید تا پخته شود خامی :)