#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"); //@Learncppcout << 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
🍃🌺🍂
🌿🍂
🌸
🎀 قوانین گروه C & CPlusPlus 🎀
🙏اعضای محترم قبل از هر کاری این قوانین رو حتما مطالعه کنین 🙏
📺 تبلیغات : در صورت تنها گذاشتن یک
تبلیغ بدون هماهنگی شخص مورد نظر بدون هیچ اخطاری حذف میشه🗣 چت : چت و اسپم دادن بی مرتبط با موضوع گروه
اکیدا ممنوعه و در صورت اصرار ورزیدن حذف میشین📚 مطالب : مطالب خود رو
مطابق با اسم گروه قرار دهید و سوالتون رو با #سوال شروع کنین 📝 نوشتن : در گروه حتما
فارسی تایپ کنید⁉️ سوال : سوالهای خودتون رو کامل
در یک پیام ارسال کنید ، سوال های کوتاه و پیاپی حذف میشوند 📪 فوروارد مطالب : از کانال های دیگه
مطلبی فوروارد نکنید که تبلیغ حساب شده و حذف میشین🖥 فایل exe : از گذاشتن فایل exe
جدا خودداری کنین در صورت مشاهده فایل حذف خواهد شد🚷 پیوی : رفتن به خصوصی کاربران و
ایجاد مزاحمت بدون اخطار حذف از گروه👮 مدیران : در صورت مزاحمت مدیران در پیوی اعضا , با دادن اسکرین شات از پیوی مدیر مربوطه , اقدام به
حذف مدیر از گروه خواهد شد✍ 📖 : از اعضای محترم خواهشمندیم برای بالا بردن سطح کیفی گروه در حین تمرین و کدنویسی زبان ++C اگر به یک تابع جدیدی برخورد کردن اسم تابع مورد نظر رو به صورت کلمه کلیدی که با # شروع میشه همراه با اسم کتابخونش و کدی که در حال تمرین هستند و کمی توضیح فارسی تو گروه بذارن تا دوستانی که کاربرد تابع مورد نظر رو نمیدونن بعدا با جستجو تو گروه تابع مورد نظر رو پیدا کرده و کاربردشو یاد بگیرن🌹
#قوانین
لینک گروه :
https://telegram.me/joinchat/ChZ37DybSHKOo67vuleOdw
لینک کانال :
@Learncpp