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

سؤال مهم جدا بالنسبة لي..فيجيوال سي!

مغلق
بدأه إسماعيل ابراهيم في 28 مايو 2002 · 3 رد · 441 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ما الفرق بين :

class EsmFrm : public CFrameWnd 
{
      public : EsmFrm() 
               { 
                 Create(Null,"Esmaeel");
                }
 };

وبين :

CFrameWnd *EsmFrm;   
  public: BOOL InitInstance() 
    { 
       EsmFrm=new CFrameWnd();
       EsmFrm->Create(NULL,"Esmaeel");
      }
#2

الأول يقوم بتعرفيف كلاس مورووث من CFrameWnd وفي الباني تبعه يقوم بانشاء النافذة ولكن هذا غير منصوح فيه .

الثاني كود خطأ ولا يعمل أي شئ ..

Coding on the Cloud and for the Cloud!

My Blog

#3

أهلا اخ هاني وين الغيبة؟:D

1)ما البديل لإنشاء نافذة إذا كانت الطريقة الاولى غير منصوح بها؟؟

ألا يقوم القسم الثاني بتعريف مؤشر لكلاس CFrameWnd ومن ثم يطلب الدوال منه (ملاحظة هذا الكود يكون داخل كلاس موروث من CWinApp)

#4

الطريقة الأفضل هي أن تقوم بعمل تابع اسمه Create يقوم باستعداء ال Create تبع الأب . لأن الConstructor يفضل أن يقوم بتهيئة المتحولات الداخلية فقط ..

بالنسبة للكود التاني فهو غير كامل أعتقد . حيث يجب أن يكون ضمن كلاس ، لذلك ذكرت انه خطأ . على كل استخدام هذه الطريقة ممكن ولكنه غير مفيد أبدا لأن من صصفات التوارث هو استخدام نفس صفات الأب ولكن هنا أنت لا تستخدمها ولا تستطيع الوصول إلى العناصر المحمية كالعناصر ال private أو ال protected ، التي د تضطر إلى الوصول لها يوما ..

Coding on the Cloud and for the Cloud!

My Blog

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

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