++Learn and Programming with C

سایتی برای دیدن نمونه کد های سی پلاس پلاس و یادگیری

++Learn and Programming with C

سایتی برای دیدن نمونه کد های سی پلاس پلاس و یادگیری

من محسن سعیدآبادی نوسنده این بلاگ هستم.اگر برنامه ای خواستید میتونید ینستاگرامم و تلگرامم Mohsen.korea هست ادم کنید برام پیام بذارید.

طبقه بندی موضوعی
بایگانی
۰۲
مهر

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

;(int firstfuncoverload(int count

;(int firstfuncoverload(float count

این دو فانکشن از همه لحاظ شبیه هم هستند یعنی نوع خروجی ها یکسانه ، اسم فانکشن ها یکسانه و...اتنها فرق در یک مورد است ،ان هم در بخش ورودی ها است (البته میتوان خروجی ها را هم متمایز کرد).برای اورلود کردن چند فانکشن :

1-اگر تعداد متغیر های یکسانی رو ورودی میگیرن باید نوع اون ها با هم فرق کنه.

2-باید تعداد ورودی های گرفته شده باهم فرق کنه.

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

اگه سوالی داشتید پیام بدبد.

Telegram & Instagram:Chaewonkorea

نظر یادتون نره!!!


  • Mohsen Saeedabadi
۰۱
مهر

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

این برنامه رو ببینید.توش توضیح فارسی دادم:

Main

(Header(Classes and Inheritance

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

Telegram:Chaewonkorea

نظر یادتون نره!!!

  • Mohsen Saeedabadi
۰۱
مهر

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

;(friend void doost(string info

که در کلاس تعریف میشود و به اکسس اسیسی فایر هم ربطی ندارد(همان محیط های پابلیک و پرایویت و پروتکتد).

تعریف این فانکشن ها در Main source است و در قبل از شروع برنامه .

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

به مانند فانکشن فرند ها ما کلاس فرند هم داریم!!!تعریف ان هم مثل فانکشن فرند های بالاست.

البته فرق اساسی این دوستی با دوستی های دنیای واقعی این است که وقتی مثلا ما فانکشن دوست را به عنوان فرند یه کلاس تعریف میکنیم فقط ،دوست فرند کلاس است، نه کلاس ،فرند دوست؟!!

یعنی کلاس نمیتواند از اطلاعات و متغیر های فانکشن دوست استفاده کند.

نظر یادتون نره!!!


  • Mohsen Saeedabadi
۰۱
مهر

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

<temlplate <class T

بدون سمی کالن و به جای تی هر چیز دیگه هم میتونید بذارید.بعد فانکشن رو این طوری تعریف میکنیم:

(T process(T avval, T dovvom

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

Telegram:Chaewonkorea
Instagram:Chaewonkorea
نظر یادتون نره!!!
  • Mohsen Saeedabadi
۰۱
مهر

اولین نوع ارایه که ساده ترین نوع هم هست نحوه تعریفش این طوریه :

;[Int a[10 ارایه ای 10 تایی از اعداد صحیح 

فقط حواستون باشه که حتما باید داخل دو کروشه عدد معلوم باشه و حتی متغیر هم نمیتونه باشه مثلا این تعریف غلطه:

;[Int a[n

دومین نوع ارایه که به ارایه دینامیکی معروفه یا به انگلیسی Dynamic Array:

;[int *a=new int[10

خب و اما مزیت این تعریف چیه؟مزیت این تعریف اینه که بر خلاف اولین تعریف میتونیم به جای 10 یه متغیر مثلا n بذاریم یعنی این درسته:

;[int *a=new int[n

و سومین نوع تعریف این طوریه که باید اول در بالای برنامه خود <include<vector# رو بنویسید یا stack یا queue و چند مورد دیگه که به لینک لیست معروفن.چرا به اینا لینک لیست میگن چون که هر بار که یه دونه از واحد های این ارایه ساخته میشه تو خودش ادرس خونه بعدیش رو ذخیره میکنه و این کار با استفاده از پوینتر ها صورت میگیره و دیگه نگران کم اوردن حافظه به دلیل تعریف یه ارایه بزرگ دیفالت نداریم چون هر موقع که بخوایم میتونیم به این ارایه یه خونه اضافه کنیم ، کم کنیم و چندین کار دیگه.تعریف این ارایه اینطوری میشه:

;vector <int> myarray

حالا هر موقع که خواستیم به این ارایه یه خونه اضافه کنیم باید از دستور;() myarray.push_back استفاده کرد و برای پاک کردن اخرین خانه باید;() myarray.pop_back رو نوشت.میشه کارای زیاد دیگه هم با این وکتور کرد مثلا پاک کردن یه خونه خاص و یا اضافه یه خونه بین چند خونه دیگر و ....

برای اطلاعات بیشتر میتونید به این سایت http://www.cplusplus.com/reference/vector/vector که البته انگلیسی مراجعه کنین یا به من پیام بدید Telegram:Chaewomkorea

نظر یادتون نره!!!



  • Mohsen Saeedabadi
۰۱
مهر

خب بهترین سایت برای یادگیری سی پلاس پلاس اول از سایت www.cplusplus.com هستش البته اگه انگلیسی تون خوب باشه ولی اگه خوبم نباشه باز بخش های زیادی ازش رو میفهمید چون یادگیری بیشتر کد محوره و میتونید با خوندن برنامه ها بفهمید چه کار داره میکنه.حالا اگه خیلی به سایت ها انگلیسی علاقه ندارید بهترین سایت فارسی به نظر من www.bekaran.com/Tutorials/CPP/Intro.aspx

 هستش که با اینکه به سایت قبلی که گفتم نمیرسه ولی بازم خوبه.
سایت های انگلیسی دیگر:
www.stroustrup.com/C++.html (سایت سازنده سی پلاس پلاس)
http://www.cprogramming.com/tutorial/c++-tutorial.html
/http://www.tutorialspoint.com
اگه با این سایت ها مشکلتون حل نشد میتونید به من پیام بدید.
Telegram:Chaewonkorea
نظر یادتون نره!!!

  • Mohsen Saeedabadi
۳۰
شهریور

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

مباحث دخیل:Function-Class-String-File-...

MainProject

MainClass

نظر یادتون نره!!!

  • Mohsen Saeedabadi
۳۰
شهریور

خب اینجا یه برنامه گذاشتم که 2 عدد از هر نوع تایپی از اعداد اعم از صحیح اعشاری و .. رو میگیره و جابه جاشون میکنه.فانشکن تمپلیت برای اینکه متغیر هایی که نمیدونیم از چه نوعین رو بگیریم.

مباحث دخیل:Function Templates-Function-Variables-...

MainTemplate

نظر یادتون نره!!!

  • Mohsen Saeedabadi
۳۰
شهریور

با سلام در این نمونه نحوه تعریف کردن اپراتور ها یعنی + * - / >> << ... وهر چیز دیگه ای رو براتون گذاشتم.این برنامه 2 ابجکت رو میگیره و با هم جمع و منها میکنه.هر ابجکت دو عدد میگیره.

مباحث دخیل:Operator Overloading-Function

MainOperator

نظر یادتون نره!!!

  • Mohsen Saeedabadi
۳۰
شهریور

این برنامه یک استرینگ رو میگیره و اعداد داخلش رو با هم ضرب میکنه.

مباحث دخیل:String-Variables-Loops-....

MainZarb

نظر یادتون نره!!!

  • Mohsen Saeedabadi