Learning ©➕➕
4.52K subscribers
81 photos
2 videos
38 files
182 links
ک
Download Telegram
سایت رسمی محک برای کمک به بیماران سرطانی
http://www.mahak-charity.org/main/index.php/fa/how-do-i-help-my-mahak/i-want-to-help/types-of-individual-assistance
سامانه کمک رسانی به صورت آنلاین
*733*23540#
#67
#assert
include <cassert>
include <assert.h>
تابع assert برای خطایابی و مشخص کردن شماره خطی که خطا داشته به کار میرود
@Learncpp
#68
{ }
استفاده از کروشه جلوی تعریف یک متغیر باعث مقدار دادن اولیه به متغیر میشود و از خطاهای runtime جلوگیری میکند .
int sum { };
cout « sum; // sum = 0 ;

  for (int i{}; i < 10; i++)

  {

    cout << i << " ";

  }

@Learncpp
#69
#decltype
#auto
🔺توابع decltype و auto از c++11 به بعد مورد استفاده قرار میگیرن

🔹از decltype زمانی استفاده میشود که نوع خروجی یه حاصل را نمیدونیم چیه مثلا :

int x;

float y;

cin >> x >> y;

int sum = ( x + y );

cout << sum;


چون sum از نوع int هست پس جواب int میشه در صورتی که باید جواب اعشاری بهمون میداد ... برای اینکه جواب درست بهمون بده میایم از decltype استفاده میکنیم تا خودش اتوماتیک نوع خروجی رو تشخیص بده یعنی باید بنویسیم

int x;

float y;

cin >> x >> y;

decltype ( x + y ) sum = ( x + y );

cout << sum;


الان خروجی sum اعشاری هست

🔹از تابع decltype و auto تابع زمانی استفاده میشن که نوع خروجی رو از قبل نمیدونیم چیه مثلا :

int calc(int x,float y)

{

  return (x + y);

}


در اینجا return باید مقدار float رو به خروجی بده ولی ما int رو چون از قبل به عنوان خروجی دادیم int قرار میگیره پس برای حل این مشکل میایم از auto و decltype درون template ها استفاده میکنیم :

template <class T1,class T2>

auto calc(T1 x,T2 y) -> decltype(x + y)

{

  decltype(x + y) sum = 0;

  for (int i = 0; i < 10; i++)

  {

      sum += x + y;

  }

return sum;

}


int main()

{

 cout << calc(2,3.3);

 cin.get();

 return 0;

}


@Learncpp
#70
#class
#struct
#call #by #value
#call #by #reference

✅ فراخوانی struct ها به صورت call by value انجام میشه که نیاز به & هست ولی فراخوانی class ها به صورت call by reference صورت میگیره یعنی :
#include "stdafx.h"

#include <iostream>

using namespace std;

🔹تعریف struct که برای مقدار دادن به داده هاش باید & توی تابع set_data گذاشت :
struct d

{

  int x;

  int y;

  int z;

void set_data(struct d &w, int x, int y, int z);

void show(struct d a);

};

void set_data(struct d &w, int x, int y, int z)

{

  w.x = x;

  w.y = y;

  w.z = z;

}

void show(struct d a)

{

  cout << a.x << " " << a.y << " " << a.z;

}

int main()

{

  d a{};

  set_data(a, 2, 3, 4);

  show(a);

  cout << endl;

  system("pause");

  return 0;

}

🔹تعریف class که برای مقدار دادن به داده هاش نیازی به استفاده از & نیست :
class test

{

public:

  void set(int a, int b, int c)

  {

    x = a;

    y = b;

    z = c;

  }

  void show()

  {

    cout << x << " " << y << " " << z;

  }

private:

  int x, y, z;

};

int main()

{

  test t;

  t.set(10, 20, 30);

  t.show();

  cout << endl;

  system("pause");

  return 0;

}

@Learncpp
#71
#class
#constructor #سازنده

✅ فراخوانی یک سازنده درون سازنده دیگر با استفاده از کاراکتر (دو نقطه : ) در کلاس ها
🔺نکته : برای فراخونی به این روش باید تعداد پارامترهای سازنده ها یکسان نباشند.
🔹فرض کنیم یک کلاسی به نام func داریم که دو سازنده با پارامترهای متفاوت داریم مثلا :
class func

{

public:

func()

{

  cout << "@Learn";

}

func(char *str)  

{

  cout << str;

}

};

حالا اگه بخوایم یکی از سازنده هارو تو سازنده دیگه صدا بزنیم یا استفاده کنیم باید از : استفاده کنیم یعنی
func(char *str) :func()

به این صورت کار میکنه که ابتدا تمامیه دستورات func() اجرا میشه بعد دستورات سازنده func(char *str) .

🔹مثال :
#include "stdafx.h"

#include <iostream>

using namespace std;

class func

{

public:

func()

{

  cout << "@Learn";

}

func(char *str) :func()

{

  cout << str;

}

};

int main()

{

  func("cpp"); //@Learncpp

  cout << endl;

  system("pause");

  return 0;

}

@Learncpp
#72
#reference #class #function #مرجع
#ampersand(&) #Rvalue #Lvalue #توابع
✅ مفهوم قرار دادن & قبل از اسم توابع در ++C

🔺برای درک موضوع ابتدا Rvalue (راست مقدار) و Lvalue (چپ مقدار) رو توضیح میدم , به بیان ساده به عبارتی "چپ مقدار" میگویند که در سمت چپ یک عبارت قرار دارد و میتواند مقداری را بگیرد و به عبارتی "راست مقدار" میگویند که در سمت راست یک عبارت قرار دارد مثلا :
Lvalue = Rvalue

x = y;

🔹متغییر x "چپ مقدار" و متغییر y "راست مقدار" هست.
🔹نکته : عبارات یا متغییر هایی را "چپ مقدار" میگوییم که قادر به دریافت داده هستن مثل متغییر x و تمام ثوابت رشته ای ,کاراکتری و عددی ,و متغییر ها مثل y "راست مقدار" هستند.

🔺خب حالا مرجع رو میگم , مرجع ها شبیه اشاره گرها هستن , یک مرجع به صورت زیر تعریف میشه :
  int y;

  cin >> y;

  int &x = y; // در هنگام تعریف مرجع باید مقدار رو بهش بدیم

  cout << x;

خب ما یه مرجعی به نام x تعریف کردیم که برابر متغییر y قرارش دادیم.
🔹دقت بکنیم وقتی یه متغییر رو از نوع مرجع تعریف میکنیم به صورت "چپ مقدار" میشود یعنی مقدار میگیره ( هم میتونه "راست مقدار" باشه هم "چپ مقدار").

🔺با توضیحاتی که بالا دادم متوجه شدیم که وقتی از & قبل یه متغییر میذاریم متغییر "چپ مقدار" میشه پس وقتی علامت & رو قبل اسم تابع قرار میدیم یعنی داریم به تابع میفهمونیم که این تابع "چپ مقدار" هست یعنی میتونیم توی این تابع با علامت = (انتساب دادن) بهش مقدار بدیم یعنی :
#include <iostream>

#include <string.h>

using namespace std;

int &func(int x, int y)

{

  return y;

}

int &func1(int x)

{

  return x;

}

int main()

{

  int x = 0;

  x = func(2, 4) = 10;

  cout << x; // x=10

  cout << endl;

  return 0;

}


x = func(2, 4) = 10;
این خط مقدار 10 رو به تابع func میده ( مقدار قبلی تابع هرچی هست پاک میشه ) و مقداری که به تابع func داده شد با = توی x هم ریخته میشه.
همچنین میتونیم با استفاده از تکنیک & خروجی توابع دیگر رو تو محاسبات استفاده کرد و مقدار حاصل رو توی تابع func بریزیم :
int main()

{

  int x = 0;

  x = func(2, 4) = func(1, 2) +  func1(2);

  cout << x;  // x = 4

  cout << endl;

  system("pause");

  return 0;

}

@Learncpp
💐🍃🌿🍃🌼
🍃🌺🍂
🌿🍂
🌸
🎀 قوانین گروه C & CPlusPlus 🎀
🙏اعضای محترم قبل از هر کاری این قوانین رو حتما مطالعه کنین 🙏

📺 تبلیغات : در صورت تنها گذاشتن یک تبلیغ بدون هماهنگی شخص مورد نظر بدون هیچ اخطاری حذف میشه

🗣 چت : چت و اسپم دادن بی مرتبط با موضوع گروه اکیدا ممنوعه و در صورت اصرار ورزیدن حذف میشین

📚 مطالب : مطالب خود رو مطابق با اسم گروه قرار دهید و سوالتون رو با #سوال شروع کنین

📝 نوشتن : در گروه حتما فارسی تایپ کنید

⁉️ سوال : سوالهای خودتون رو کامل در یک پیام ارسال کنید ، سوال های کوتاه و پیاپی حذف میشوند

📪 فوروارد مطالب : از کانال های دیگه مطلبی فوروارد نکنید که تبلیغ حساب شده و حذف میشین

🖥 فایل exe : از گذاشتن فایل exe جدا خودداری کنین در صورت مشاهده فایل حذف خواهد شد

🚷 پیوی : رفتن به خصوصی کاربران و ایجاد مزاحمت بدون اخطار حذف از گروه

👮 مدیران : در صورت مزاحمت مدیران در پیوی اعضا , با دادن اسکرین شات از پیوی مدیر مربوطه , اقدام به حذف مدیر از گروه خواهد شد

✍ 📖 : از اعضای محترم خواهشمندیم برای بالا بردن سطح کیفی گروه در حین تمرین و کدنویسی زبان ++C اگر به یک تابع جدیدی برخورد کردن اسم تابع مورد نظر رو به صورت کلمه کلیدی که با # شروع میشه همراه با اسم کتابخونش و کدی که در حال تمرین هستند و کمی توضیح فارسی تو گروه بذارن تا دوستانی که کاربرد تابع مورد نظر رو نمیدونن بعدا با جستجو تو گروه تابع مورد نظر رو پیدا کرده و کاربردشو یاد بگیرن🌹

#قوانین

لینک گروه :
https://telegram.me/joinchat/ChZ37DybSHKOo67vuleOdw
لینک کانال :
@Learncpp
نام_گذاری_متغیرها_و_آشنایی_با_شر.mp4
155.2 MB
عنوان : نام گذاری متغیرها و آشنایی با شرط if
حجم : 155 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
Learning ©➕➕
نام_گذاری_متغیرها_و_آشنایی_با_شر.mp4
👁‍🗨 نام گذاری متغیرها و آشنایی با شرط if
حجم : 155 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
اعمال اولیه ریاضی - قسمت اول.mp4
43.6 MB
عنوان : اعمال اولیه ریاضی (قسمت اول)
حجم : 43.5 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
Learning ©➕➕
اعمال اولیه ریاضی - قسمت اول.mp4
👁‍🗨 اعمال اولیه ریاضی (قسمت اول)
حجم : 43.5 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
اعمال اولیه ریاضی - قسمت دوم.mp4
38.6 MB
عنوان : اعمال اولیه ریاضی (قسمت دوم)
حجم : 38.6 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
Learning ©➕➕
اعمال اولیه ریاضی - قسمت دوم.mp4
👁‍🗨 اعمال اولیه ریاضی (قسمت دوم)
حجم : 38.6 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
حلقه for و مثال هایی از break و continue.mp4
37.6 MB

عنوان : حلقه for و مثال هایی از break و continue
حجم : 37.6 MB
مدرس : آقای کیارش بازرگان
@Learncpp
Learning ©➕➕
حلقه for و مثال هایی از break و continue.mp4
👁‍🗨 حلقه for و مثال هایی از break و continue
حجم : 37.6 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
مثال هایی از حلقه for.mp4
27.1 MB
عنوان : مثال هایی از حلقه for
حجم : 27.0 MB
مدرس : آقای کیارش بازرگان
@Learncpp
Learning ©➕➕
مثال هایی از حلقه for.mp4
👁‍🗨 مثال هایی از حلقه for
حجم : 27.0 MB
مدرس : آقای کیارش بازرگان
#فیلم
@Learncpp
نگه_داری_متغیرها_در_حافظه_و_تبدیل_م.mp4
48.5 MB
عنوان : نگه داری متغیرها در حافظه و تبدیل مبناها
حجم : 48.4 MB
مدرس : آقای کیارش بازرگان
@Learncpp