الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن شرح لهذا الكود

بدأه فوضوية في 25 يوليو 2011 · 1 رد · 567 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلآم عليكم ورحمه الله

ممكن لاهنتوآ تشرحون لي هالكود

#include <iostream>
using namespace std;

class OBJ{
	int* i;
public:
	OBJ (){
               i = 0 ;
		cout<<"Default Constructor is called\n";}

	OBJ (int x , OBJ obj)
	{       i = new int; *i = x;
		 cout<<"Parametrized Constructor is called\n";
	}


	OBJ (const OBJ &obj)
	{       i = new int;i = obj.i;
		cout<<"Copy Constructor is called\n";
	}

      ~OBJ(){
               cout<<"\nFreeing i\n";
delete i;}
       int get_I()
	     {return *i ;}};

int main ()
{       OBJ obj1;

	OBJ obj3(10,obj1);
	cout<<"Obj 2 i value: "<<obj3.get_I();
	cout<<"maha\n";
return 0; }

ومتى انادي الهادم للداله copy constructer

#2

اختي بالنسبة للشرح فهو بسيط ..

عملية تعريف صنف بسيط يحتوي في جزءه الخاص على مؤشر رقمي واحد (i ) لكن يحتوي على اكثر من طريقة لتعريف الكائن التابع له . وهي تتم عن طريق دالة المنشئ Constructor ... حيث ان الواضح في البرنامج هنالك عملية Copy او من الممكن ان نسميها Overloading ,, حصلت على Constructor لانك قمت بتعريفه باكثر من شكل .. في اول شكل يقوم بالتعريف فقط لذلك يعطي قيمة i بصفر .. وهذا هنا المنشئ الافتراضي .. لكن انتي ايضا حددتي فيما اذا كان المستخدم يريد ان يدخل قيمة الى الكائن .. فانه يستطيع ذلك من خلال عملية وضع القيمة مع عملية تعريف الكائن التابع للصنف الجديد وهذا واضح بالسطر ..

        OBJ obj3(10,obj1);

لذلك تسلسل العمليات سيكون ..

1- المنشئ الافتراضي .. Default Constructor

2- الناسخ Copy Constructor

3-المنشئ مع المعاملات .. Parametrized Constructor

تم استدعاء الناسخ في ثاني عملية لانه في السطر

        OBJ obj3(10,obj1);

تمت عملية اسناد قيمة الكائن الاول الى الثاني لذلك تمت عملية نسخ .. واستدعاء للناسخ وبعدها استدعي المنشئ ذي المعاملات ..

ارجو ان يكون الجواب مفهوما ومفيدا ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

مواضيع مشابهة