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

ساعدوني بسرررعة ....سؤال في السي بلس بلس

مغلق
بدأه كمبيوتر في 8 مارس 2007 · 6 رد · 1,401 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله و بركاته

انا عضوة جديدة في المنتدى :rolleyes: أول مره أطلبكم فأتمنى أنه مايخيب ظني

أنا أدرس لغة سي بلس بلس ولسى في البداية ودخلنا لل classes وconstructor وما استوعبت فيها شي :( وأريد شرح وافي لها

ولن أنسى من يعينني من دعائي وجزيتم الخيرات

#2

ممم شرحي لن يكون واضح

ولكن ابحثي عن مايسمى بالطبقات

عموما أعطيك ملاحظات عن الطبقات:

-تكوين طبقات.

-الوصول إلى إعضاء الطبقة.

وما إلى ذلك

سامحيني إن لم أكن قد أجبتك إجابة شافية لإنني مبرمج C لا C++

وبارك الله فيكي

#3

شكرا أخي the sniper على مرورك وردك

لكن أخي هل الطبقات هي ال classes ?

وفقك الباري لمرضاته

تم تعديل هذه المشاركة بواسطة كمبيوتر في 8 مارس 2007 في 20:05

#4

أنا بانتظار مساعدتكم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

أعطوني لو مواقع ألقى فيها شرح وافي لسي بلس بلس..........أو كتي عربية مفيدة....................

بارك الله فيكم ونفع بكم

#5

أنا بانتظار مساعدتكم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

أعطوني لو مواقع ألقى فيها شرح وافي لسي بلس بلس..........أو كتي عربية مفيدة....................

بارك الله فيكم ونفع بكم

#6

السلام عليكم

ارجو فقط ان تحركي محرك البحث في هذا المنتدى وتجدي مايسرك.

هنالك شرح كثير عن class وهي الطبقات واذكر اذا لم تخني الذاكرة شرح الاستاذ الكبير HGB في هذا الموضوع واسهب فحاولي الحصول على هذا الشرح.

كذلك اذا لم تجدي فسالي ونجاوبك باذن الله.

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#7

السلام عليكم

لغة البرمجة سي هي لغة برمجة تقوم بتنفيذ التعليمات الواحدة تلوى الأخرى. أي أن ترتيب التعليمات و تعريف الدوال مهم جدا. و لكن أحيانا تتداخل الدوال والمتغيرات مما يجعل تسير عمل الكود بشكل متكامل أمرا صعبا. لذلك نستعمل الأقسام ليكون الكود أكثر تنظيما ويسهل إستغلال جميع الدوال دون الأخذ بعين الإعتبار ترتيب الدول. مثال:

class DeviceInfo
{	
public:

	int val;
	bool Found;
//========
DeviceInfo();
~DeviceInfo();
//=========
	void static getDisplayRes(int & iHorzRes, int & iVertRes);
	void static getDisplaySize(int & iHorzSize, int & iVertSize);
	bool static getOEMinfo(WCHAR infoBuf[], DWORD dwSize, DWORD & dwStrLen);
	bool static getPlatformType(WCHAR infoBuf[], DWORD dwSize, DWORD & dwStrLen);
	........  

private:
	void static getDisplayRes(HDC currDvcCtx, int & iHorzRes, int & iVertRes);
	void static getDisplayColourBitInfo(HDC currDvcCtx, int & iBitPxlColour);
	bool Exist;
	......

protected:
	void static getDisplaySize(HDC currDvcCtx, int & iHorzSize, int & iVertSize);
	.......
};

الكود أعلاه يبرز أنموذج لتعريف قسمDeviceInfo والدوال المنتمية لهذا القسم يمكن أن تكون Public, Private أو Protected:

Public: يمكن إعتماد الدالة من هذا النوع من قبل كافة دوال هذا القسم أو الأقسام الأخرى.

Private: يمكن إعتماد الدوال أو المتغيرات من هذا النوع فقط من قبل القسم الذي تنتمي إليه.

Potected: يمكن إعتماد الدوال والمتغيرات من هذا النوع فقط من قبل دوال القسم المنتمية له و الدوال الفرعية لها.

هذه الأنواع الرئيسية ويوجد أنواع أخرى كثيرة عدة.

الكود أعلاه هو بعض محتويات الملفDeviceInfo.h أما تعريف الدوال في الملف DeviceInfo.cفيكون كما يلي:

void DeviceInfo::getDisplayInfo(int & iHorzRes, int & iVertRes, int & iBitPxlColour)
{........
	return;
}

void DeviceInfo::getDisplayRes(int & iHorzRes, int & iVertRes)
{.......
	return;
}

أو

class DeviceInfo
 {
  public:

	DeviceInfo()
	 {....... }
	~DeviceInfo()
	{.......}

	void getDisplayRes(int & iHorzRes, int & iVertRes)
	{....}
	void getDisplaySize(int & iHorzSize, int & iVertSize);
	{....}
	bool getOEMinfo(WCHAR infoBuf[], DWORD dwSize, DWORD & dwStrLen)
	{....}
	bool getPlatformType(WCHAR infoBuf[], DWORD dwSize, DWORD & dwStrLen)
	{....}

private:
	void getDisplayRes(HDC currDvcCtx, int & iHorzRes, int & iVertRes)
	{....}
	void getDisplayColourBitInfo(HDC currDvcCtx, int & iBitPxlColour)
	{....}
	......

protected:
	void getDisplaySize(HDC currDvcCtx, int & iHorzSize, int & iVertSize)
	{....}
	.......

};

أجلب الإنتباه الآن إلى وجود دالتان لهما نفس إسم القسم وأحدهما يبدأ بالرمز " ~"!!!!!!!!!!!!!

إنهما Constructor و Destructor القسم

: Constructor أو البناء هي دالة لا نوع لها و تأخذ دائما نفس إسم القسم المنتمية له وتهدف إلى الإنشاء الفعلي للقسم بما في ذلك حجز الموارد اللازمة للبرنامج (حجز مساحات من ذاكرة الحاسوب وتحديد القيم الأولية لبعض المتغيرات...) .

: Destructor هي دالة لا نوع لها و تأخذ دائما نفس إسم القسم المنتمية له مع إضافة الرمز " ~". تنادى هذه الدالة عادة في نهاية عمل البرنامج وتهدف إلى إخلاء جميع الموارد التي تم حجزها سابقا.

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…