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

تعلم ببساطه virtual

مغلق
بدأه عبدالهادي الألمعي في 9 يونيو 2003 · 8 رد · 1,350 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ببساطه يوجد عندي نوعين نوع virtual ونوع اخر هو puer virtual

النوع الاول هو اذا استخدمت الوراثه وعندي ثلاث كلاسات أ ب ج

الكلاس الرئيسي منها أ

به داله طباعه وليكن اسمها void show

اذن لابد الطباعه في الكلاس ب يكون اسمها مختلف عن اسم داله الطباعه التي موجوده في الكلاس الرئيسي

وكذلك في الكلاس ج

بالطريقه هذه استطيع ان اطبع عناصر كل كلاس لوحده

الان اذا اردت استخدام virtual

اجعل اسم جميع دوال الطباعه في الكلاسات بنفس اسم داله الطباعه في الكلاس الرئيسي

ويكون التصريح في الكلاس الرئيسي فقط واكتب فقط virtaul قبل اسم داله الطباعه

بهذا الشكل

virtaul void show

ملاحظه: اذا لم اكتب كلمه virtaul

فإنه لن يطبع عناصر كل كلاس لوحده بل سيطبع فقط عناصر الكلاس الرئيسي

اما النوع الثاني وهو pure virtaul

وهو بنفس الطريقه الا انه التصريح فيه يكون هكذا في الكلاس الرئيسي

virtaul void show ()=0;

اي سؤال انا حاضر

تم بحمد الله

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#2

Virtual تستخدم للوراثة الديناميكية هذه الوراثة هي القياسية في كل من Java و Smaltalk

اما بالنسبة ل++C فان الوراثة ستاتيكية ولجعلها ديناميكية فنستخدم virtual

#include 
#include 

class Person;
class Student;

 class  Person
{
    protected:
       char Name[10];
      int Nr;
  public: 
       Person(int nr,char* name)
	{
                	Nr=nr;
		strncpy(Name,name,10);
	}
     void output()
	{
		cout<<"I am "<	}
      char* describeme()
	{
		return " Person ";
	}
};

 class Student:public Person
{
 public:
	 Student(int nr,char* name):Person(nr,name){}
	 char* describeme()
		{
			return " Student ";
		}
};

void main()
{
   	Person P1(1,"Khaled");
	Student s1(100,"Ali");

	P1.output();
	s1.output();
}

في هذه الحالة تعتبر الوراثة استاتيكية وتكون النواتج كما يلي غير مايتوقعه المبرمج

I am  Person  and  my Nr:1 and my name: Khaled
I am  Person  and  my Nr:100 and my name: Ali
Press any key to continue

و اذا اضفنا virtual لكل من Person و Student

كما يلي

virtual   char* describeme()

فان الناتج يكون كما توقعناه

I am  Person  and  my Nr:1 and my name: Khaled
I am  Student  and  my Nr:100 and my name: Ali
Press any key to continue
اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#3

طب انا واش قلت انا ابدا معاهم ببساطه وركز على موضوعي قلت فيه ببساطه

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#4

أنا أعرف أنه عن طريق المؤشر تحصل الخلط فقط فهل أخي الفاضل هداك الله

قد جربت هذا البرنامج

:o:o:o

#5

البرنامج جربته وبعد ذلك وضعته هنا هل يوجد خطأ ما اخبرني حتى اصححه

 class Studentublic Person

class Student : public Person

اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#6

نعم كلام صح مائة مائة ماشاءالله

جربت البرنامج وكتبت ال virtual

وأنا ألصقه هنا للفائدة

طبعاً البرنامج برنامج الأخ الفاضل khwlani

#include 
#include 
#include

class Person;
class Student;

 class  Person
{
  protected:
    char Name[10];
    int Nr;
  public:
    Person(int nr,char* name)
    {
      Nr=nr;
      strncpy(Name,name,10);
    }
    void output()
    {
      cout<<"I am "<      <<" and my name: "<    }
    virtual char* describeme()
    {
	return " Person ";                          //برنامج الأخ khwlani
    }
};

class Student:public Person
{
 public:
   Student(int nr,char* name):Person(nr,name){}
   char* describeme()
   {
     return " Student ";
   }
};

void main()
{
  clrscr();
  Person P1(1,"Khaled");
  Student s1(100,"Ali");
  P1.output();
  s1.output();
  getch();
}
#7

جزاكم الله خيرا وزادكم من علمه

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

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

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

#8

اشكركم جميعا ولكن

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

وركزوا على موضوعوي قلت تعلم ببساطه

اولا واخيرا اشكر اخي وعزيزي الحبيبkhwlani

وانا وهو اخوان سواء شرحت انا ام هو المهم تتم الفائده

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#9

بسم الله الرحمن الرحيم

بصراحة الذي أتى بي إلى هذا المنتدى أشياء عجيبة !!!!!!!!!!!! :wacko:

ولكن كان آخرها أن الدكتور طلب منا بحث عن ال(virtual reality)فمن أين أجد هذا البحث سواء المراجع أو من مواقع الانترنت أو من أي مكان آخر

بليييييييييييييس ما تخلوني أنتظر كثيرا لو سمحتم ردوا بسرعه :(

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

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