كان خياري بمكانه لما قررت احتفظ بالplay list عندي , وفعلا جدا شرحك رهيب , الله يبارك فيك , المواضيع سهلة جدا صارت , واختصرت علي كثير وقت بالتعلم , الله يبارك فيك.
very interesting concepts. why professors in universities dont have the ability to teach students like the way this guy does... thank you you make advanced c++ easy and fun.
اولا جرب تخلى ال methods (private or protected) مش public فى subclasses هتلاقى ان طريقة ال pointers شغالة لكن مش هنقدر نوصل بالطريقة العادية . ثانيا لو استخدمت pointer على subclass تقدر تستخدم الmethod اللى فى الparent class عن طريق scope operator و انت لسه مشاور على نفس subclass .
طيب هو انا ليه استخدم البوينتر عشان يشير الى المكان الانى هستدعى منه الميثود لما ممكن انى استدعيها بالاوبجيكت الانا عملته و الاوبجيكت معمول من الكلاس الهستدعى منه الميثود يبقا ايه الفرق انى استدعيها من الميثود و انى استدعيها من الاوبجيكت؟؟؟
لأن فى عده function بنفس الاسم لذلك بنحط virtual كعلامه المترجم ان احنا هنعمل اوفر ويدنج فى الفئه الاساسيه ولما نشتق منها عده كلاسات بنفس function محتاجين اكسينج لعنوان الفئه المشتقه عشان الكومبيلر يعرف يحدد أي داله ودا السبب ان احنا بنستخدم بوينتر والله اعلم
طب ممكن من الاول ما نعملش بوينتر وننهيرتنس علطول هو كدا كدا هياخد ال method الخاصة بالكلاس الوارث cricularوهيتجاهل الميثود الخاصة بالكلاس الموروثshape.
السلام عليكم دكتور لماذا نستخدم الـ pointer مع الـ polymorphism ؟ ولو استخدمنا الطريقة العادية بدون عمل مؤشر لانلاحظ اي تغيير في حال وجود الـ virtual من عدمها؟ ماهو السبب
لو مش استعملت Virtual البرنامج هيطبع الفانكشن في الكلاس الاساسي مش الكلاس اللي انت عايزه في كدا بقت النوع الاول compile-time اما لو استعملتها هيطبع الكلاس اللي انت محتاجه بس اما البوينترز بتفيدك في حته انك مش لازم تعرف نوع ال object
الكلام علي قد ما فهمت كان علي نفس الفنكشن بنفس الاسم وبتالي اما تروح علي الاوبجكت من الكلاس الجديد وتستدعي الفنكشن البنفس الاسم اللنكر هياخد اول فنكشن هيشوفها نفس الاسم وبتالي الي البيز كلاس هتكون هي الاولي وهيتعامل معاها عشان كده لازم نحدد اي فنكشن احنا هنستخدمها لان الاسم مشترك والاولويه للبيز
ليه قيم w -h مبظهروش #include using namespace std; class shape { int width, height; public: shape(int w , int h) { width = w; height = h; } virtual int area() { cout
حرفيا كل مفهمش حاجه في ال c++ في اي كورس بفهمها ب سهوله من هنا
كان خياري بمكانه لما قررت احتفظ بالplay list عندي , وفعلا جدا شرحك رهيب , الله يبارك فيك , المواضيع سهلة جدا صارت , واختصرت علي كثير وقت بالتعلم , الله يبارك فيك.
بس طريقة شىرحك وصوتك بتفتح نفسي على الدراسة
الله يقويك ويقدرك ويجعله في ميزان حسناتك يارب ♥♥
very interesting concepts. why professors in universities dont have the ability to teach students like the way this guy does... thank you you make advanced c++ easy and fun.
عشان مفيش ضمير
@@tsts6728صح 😂😂😂
كل عام وحضرتك طيب بفرح جداً لما بشوفك والله أحبك في الله يا دكتور محمد
افضل شرح للبرمجة و قواعد البيانات الله يوفقك و يعافيك يا رب و يحفظك والله انك اسطورة بالشرح
بارك الله في عمرك يارب
استفدت جدا جدا من الدروس دي
والله يابشمهندس انك تحفة❤
PERFECT explanation, بارك الله فيك
كل الشكر والتقدير لتفاني حضرتك في توصيل المعلومه بالشكل الجميل المبسط جزاك الله خير وعوض تعبك خير وراحه بال :)
اولا جرب تخلى ال methods (private or protected) مش public فى subclasses هتلاقى ان طريقة ال pointers شغالة لكن مش هنقدر نوصل بالطريقة العادية .
ثانيا لو استخدمت pointer على subclass تقدر تستخدم الmethod اللى فى الparent class عن طريق scope operator و انت لسه مشاور على نفس subclass .
جزاك الله خيرا , فعلا مفيد جدا
بارك الله فيك استاذ محمد وزادك الله من علمه
جزاك الله خيرا يا دكتور محمد
بارك الله فيك
جزاك الله خيراً يا هندسة❤️
الله يجزيك الخير ويرزقك الجنة جزاء لتعبك وجهدك
انت حببتنى فالبرمجه ❤❤❤
هات راسك ابوسها ❤❤
ربنا يبارك ف حضرتك ويجعله في ميزان حسناتك
jazak allahu khairan , thank you for your teaching , shukran
بارك الله فيك استاذ
جزاك الله خيرا ياهندسة
اكبر شكر لك يا دكتور
ما شاء الله عليك أروع من الرائع
لو عندك نسخة من الكتاب معربة لسهولة المراجعة لأن مجموعة المعلومات هذه تحتاج مراجعة دورية .
❤❤❤❤❤ بارك لله فيك استاذ
شرح اكثر من رائع...تسلم يا بطل
شكرا شرح ممتاز
بارك الله فيك يا استاذ
شكرا يا دكتور
great explanation, thank u so much.
thank u soo much from morocco
يارب سلمى تتعين معيده❤
Thank you so much every time i see your videos i feel like programming is so fun really thank you ♥️
جزاكم الله خيرا
thank u very mush please give us more videos on c++ and c
عظمه❤
الله يعطيك العافيه دكتور .. لو سمحت عاوزه مرجع ل parallel programming,MPI, openMp
شكرا
لو مستخدمتش ال virtual واستخدمت ال dot بدل ال pointer الكود هيبقي صح بردو !!! وانهي الافضل
thank you so much sir !
هو احنا لو عملنا مثلا
Rectangle rec(10,7,"red")
Rec.rectangle::area();
أو
Rec.area();
مش هيطبع الناتج ؟
دكتور يعني لو ما استخدمت بوينتر راح يعتمد على الترتيب الهرمي
بس إذا كنت بستخدم البوينتر لازم اكتب فيرتشوال ، صح ؟
حدا يلخص البوليمورفيزم بسطرين لأن مش فاهم ايش الفرق بين هالشغل كلو وبين الطريقة العادية انو نعمل اوفررايدينغ من البيز كلاس
طيب هو انا ليه استخدم البوينتر عشان يشير الى المكان الانى هستدعى منه الميثود لما ممكن انى استدعيها بالاوبجيكت الانا عملته و الاوبجيكت معمول من الكلاس الهستدعى منه الميثود يبقا ايه الفرق انى استدعيها من الميثود و انى استدعيها من الاوبجيكت؟؟؟
ياريت لو عرفت قولي
لأن فى عده function بنفس الاسم لذلك بنحط virtual كعلامه المترجم ان احنا هنعمل اوفر ويدنج فى الفئه الاساسيه ولما نشتق منها عده كلاسات بنفس function محتاجين اكسينج لعنوان الفئه المشتقه عشان الكومبيلر يعرف يحدد أي داله ودا السبب ان احنا بنستخدم بوينتر والله اعلم
الشكر لك على المجهود الكبير، لكن لماذ نستعمل البوانتر هل هذا ضروري حتى يتحقق ال البوليمورفيزم خاصة ان هناك لغات لا تدعم خاصية البوانتر
السلام عليكم العلامة اللي استدعيت بيها المساحة بعد pointer اعملها اذاي
طب ممكن من الاول ما نعملش بوينتر وننهيرتنس علطول هو كدا كدا هياخد ال method الخاصة بالكلاس الوارث cricularوهيتجاهل الميثود الخاصة بالكلاس الموروثshape.
لو عرفت الفرق ممكن تقولي
السلام عليكم دكتور
لماذا نستخدم الـ pointer مع الـ polymorphism ؟ ولو استخدمنا الطريقة العادية بدون عمل مؤشر لانلاحظ اي تغيير في حال وجود الـ virtual من عدمها؟ ماهو السبب
ياريت لو عرفت تقولي ضروري
الحقيقة لم افهم ....يعني ما المشكلة في عمل استدعاء للـ method و تنفيد area يعني
rec.area
علي طول ما راح اطلع لنا حساب مساحة المربع !؟
نفس الملاحظة...
هتطلع نفس النتيجة ..بس الفكرة ف استخدام البوينر هي الاستدعاء عن طريق ال base class
يعني تقريبا حاجة بتلخبط ع الفاضي
@@mohamed-eg4wz طيب حسب فهمي الاولي للموضوع انو هالطريقة بدها شغل اكتر من انك تستدعي عن طريق الاوبجكت بالطريقة القديمة ,,ليش حتى استخدمها ؟
@@mahmoudsh97يجدعان ده كان مجرد مثال للشرح 😂
انا مش فاهم ايه الفرق بين اني استخدم الvirtual keyword وبين اني اختار مستخدمهاش عادي وهيحصل override برضو زي الفيديو اللي فات ؟ وكمان ليه بنستخدم البوينترز ؟
لو مش استعملت
Virtual
البرنامج هيطبع الفانكشن في الكلاس الاساسي مش الكلاس اللي انت عايزه
في كدا بقت النوع الاول compile-time
اما لو استعملتها هيطبع الكلاس اللي انت محتاجه بس
اما البوينترز بتفيدك في حته انك مش لازم تعرف نوع ال object
حاول تفهم كلامي بعدين روح للدقيقة 20:00
وشوف المهندس محمد عمل ايه
اين طلاب MTI
ليه حضرتك نعمل virtual وكدة لما ممكن نعرف اوبجكت من الكلاس ال عايزينه وننادي الفينكش classname.methodname() زي كدة
متابعه
في انتظار الرد
الكلام علي قد ما فهمت كان علي نفس الفنكشن بنفس الاسم وبتالي اما تروح علي الاوبجكت من الكلاس الجديد وتستدعي الفنكشن البنفس الاسم اللنكر هياخد اول فنكشن هيشوفها نفس الاسم وبتالي الي البيز كلاس هتكون هي الاولي وهيتعامل معاها عشان كده لازم نحدد اي فنكشن احنا هنستخدمها لان الاسم مشترك والاولويه للبيز
في حالة لم يفعل ال virtual وقام باستعاء ميثود المساحه في دالة ال main عن طريق ال سكوب اوبريتور تطلع نفس الناتج صح ؟؟؟
اصلا مافي داعي كمان للسكوب اوبريتور فينا من الاوبجكت نفسو نستدعي الميثود بعد.ما نكون عاملين اوفررايدينغ
بس وين الفائدة من هالموضوع لم افهم صراحةً
💙💙💙
😍😍😍
ليه قيم w -h مبظهروش
#include
using namespace std;
class shape
{
int width, height;
public:
shape(int w , int h)
{
width = w;
height = h;
}
virtual int area()
{
cout
جوا الfunction بتاعت الarea مفيش حاجة تطبع الlength * width . انت بتعمل return لكن مش بتطبع
اصلا مالهة داع هذه الخاصية صراحة ..اني ممكن اعمل class من غير area وثم بعدها في derive class اعمل لكل واحدة area جديدة والسلام
جزاك الله خيرا
جزاك الله خيرا
جزاك الله خير
جزاك الله خيرا
جزاك الله خيرا