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

الفرق بين class و struct

مغلق
بدأه alr7al في 21 يونيو 2003 · 10 رد · 7,059 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا اعرف ان طريقة كتابة class نفس struct ولكن لا اعرف ما هو الاختلاف بينهم

شكرا

#2

يا اخي العزيز

الفرق بي ال struct و class

انه في كل class ممكن يكون struct بس كل class مش ممكن يكون struct

علشان في ال class في خاصية access control

يعني privet , public وهي غير متواجد في ال struct

اذا عرفت متغير في ال class تحت privet تصبح هذه المتغيرات متاحه فقط

لي function الي داخل ال class يعني اي member function فقط

والعكس صحيح مع ال public

وشكرا

#3

اضافة على كلام الأخ nono00700

الclass في c++ بينما ال struct في c

الclass يعتبر اهم دعائم البرمجة الشيئية (البرمجة مائنية المنحى)object oriented programming (oop)

وشكرا جزيلاً

#4

عفواً كائنية المنحى وليست مائنية المنحى

#5

الفرق يأخي أسهله عليك هو أن struct حاله خاصة من الclass بالنسبة للوضع العام public لأن كل متغيرات ال struct في الوضع الافتراضي عامه وهو كذلك بالنسبة لpublic في الclass مكا أن الخصوصية التي تحدث عنها الاخ لها أهمية كبيرة في الclass وهي ال private .

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

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

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

#6

السلام عليكم

الأخوة الأعزاء لا يوجد فرق بين struct و class إلا في شيء واحد هو أن مستوى الحماية الافتراضي ل struct هو public و ل class المستوى الافتراضي private ، وتستطيع تغييره في الاثنين، ومعنى ذلك أنه يمكن كتابة الكلاسس بشكل ستركتس بدون أي مشاكل

والسبب في وجود 2 keywords لها نفس الوظيفة في ++C يعود لأسباب "تاريخية" ، يعني توافقية مع كود C اللي ما فيه إلى struct

لما أضيف مفهم Abstract data type وأصبح ال data type يحتوي على وظائف بالإضافة إلى حقول المتغيرات لم تعد كلمة Structure صحيحة لغويا وعلميا فأضيفت كلمة Class وظلت struct للتوافق مع الكود القديم.

#7

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

قرأت هذا الكلام في سلسلة شوم البرمجة عن طريق ++ c

أن الفرق بين ال class و struct عبارة عن فرق لامعنا له

حيث أن كلاهما نفس الشيء كأنهما اسمان لشخص واحد

ولكن الفرق البسيط أن ال struct يبدأ public

أما ال class يبدأ private

مثال:

class my

}

; int x,y

}

x,y here is private

struct my

}

; int x,y

{

here x,y is public

and if you do

struct my

}

: private

; int x,y

{

know x,y is private

إذاً الكلاس الحالة الإفتراضية له private

والstruct الحالة الإفتراضية له هو public

إذا لايوجد فرق ذو معنى

#8

اذا ليس هناك فرق بين ال class وال struct

فلماذا مصمم ال C++ وضع ال class ؟؟

طبعا اكيد هناك فرق، عفوا ليس فرق واحد وانما عده فروق

الاول

class is an object oriented programming

وال struct لا

ثانيا

هل يمكنك ان تكتب داله داخل ال struct ? لا

ولكن بالنسبه لل class نعم ويكون member

ثالثا

التصريح الافتراضي لل struct هو public

اما التصريح الافتراضي لل class هو private

رابعا

تصريحات ال struct هي عامه، اي public

بمعنى اخر، you can access the member of the struct in main function for example

ولكن تصريحات الclass متنوعه وهي

private

protected

public

خامسا

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

ولكن يمكنك استعمال الوراثه في ال class

وهناك ايضا تصريحات للوراثه في ال class

سادسا

لنفترض لدينا

struct data

class data

عند تعريف متغير لل struct سوف تكتب

struct data vaiable

ولكن عن تعريف متغير لل class تكتب فقط

data variable

سابعا

بال class هناك مشيدات ومهدمات، بمعنى اخر constructer and destructer

ولكن في ال struct لايوجد مثل هذه الاشياء

ثامنا

you can encapsulate your data in class

but you can't in struct

تاسعا

ممكن تضع دوال operators overloading لل class

ولكن لايمكنك فعل ذلك لل struct

مثلا:

بالstruct لايمكنك فعل ذلك

struct 1 = struct2 + struct3

ولكن بال class مع اضافه لها دوال ال operator overloading يمكنك فعل ذلك

class1 = class2 + class3

هذا مثال على المتغيرات، وليس data type

هذه الفروق التي اعرفها، ويمكن ان يكون هناك فروق اخرى وانا اكون ناسيها

:)

الان هل يمكنك ان تقول ليس هناك فرق ؟ :)

اتمنى انه شرحي يكون واضح ووافي

واللي يحب يتعلم عن ال class اكثر، فليبحث بالانترنت،، والعلم + الاعتماد على النفس = شيء مهم وممتاز :)

#9

السلام عليكم

أخي العزيز بو علي ، انظر جيدا لهذا البرنامج وأخبرني ما رأيك ;)

#include <iostream>

#include <string>



using namespace std;



struct Creature

{

protected:

	string str;



public :

	Creature()

	{

  cout << "nStruct has a constructorn";

	}

	void SetName(string nstr)

	{

  str = nstr;

	}



	virtual string GetName(void)

	{

  return str;

	}





};



struct CCat : public Creature

{

public:

	void Meoo(void)

	{

  cout << "Meoooooooooooooon";

	}



	string GetName(void)

	{

  return ("Cat Name: "+str);

	}



	string operator+(Creature cre)

	{

  str = str+cre.GetName ();

  return str;

	}





};



void main()

{

	Creature cre;

	cre.SetName ("is not a human");

	cout << cre.GetName () << "n**********************nn";



	CCat cat;

	cat.SetName ("Sharoon");

	cout << cat.GetName () << endl;

	cat.Meoo ();

	cout << "******************nnn";



	string ope;

	ope = cat + cre;

	cout << ope << "nnn";

}
#11

أنا نقلت الكلام من سلسلة شوم إذهب إلى أحد المكتابات وقرأ وتعلم

++PROGRAMMING With c

SCHAUM'S

OUTlines

انظري صفحة 244 وإليك بعض المكتوب

So the difference between a class and a C++ struct is really jus cosmetic

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

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