السلام عليكم اساتذتي الكرام
ياريت ممكن توضيح عن السجلات او التراكيب في سي++
هل يمكن ان تحتوى على دوال مع المتغيرات (الحقول) داخل السجل
اذا كان نعم طيب ايش الفرق بينها وبين الclass
ولكم كل الشكر
السلام عليكم اساتذتي الكرام
ياريت ممكن توضيح عن السجلات او التراكيب في سي++
هل يمكن ان تحتوى على دوال مع المتغيرات (الحقول) داخل السجل
اذا كان نعم طيب ايش الفرق بينها وبين الclass
ولكم كل الشكر
كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!
هيهــــــــات فالقمــــــــة لا تتســـــع إلا لـــــــواحد ومـــــع ذالكــــــــ فلكــــــل مجتهــــــــد نصيــــب
اقتباسهل يمكن ان تحتوى على دوال مع المتغيرات (الحقول) داخل السجل
نعم، فقط في c++> هذا الشيء مربك لمبرمجين c++ القادمين من c، في c البنى struct تحتوي فقط على بيانات، أو مؤشرات لدوال. لكن ليس في c++، فيمكن للبنية أن تحتوي وظائف وبناء تماماً كالـclass:
#include <iostream>
struct StructObject {
int member;
StructObject(void) {
member = 1;
}
int method(void) {
std::cout << member << std::endl;
}
};
int main(int argc, char **argv)
{
StructObject sObject;
sObject.method();
return 0;
}
هناك فرق بين الـclass و البنى، لو كتبت:
struct StructObject {
int member;
};
class ClassObject {
int member;
};
إفتراضياً member في struct StructObject "عامّة" public يمكن الوصول لها مالم تجعلها private.
إفتراضياً member في class ClassObject "خاصّة" private لايمكن الوصول لها مالم تجعلها public.
والباقي متشابة، أكرر فقط في c++.
نادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.
اقتباسنادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.
أيضا يتم استخدامه ليمثل abstract class او interface، العديد من مبرمجي ++c يقومموا بإنشاء مسمي اخر لـ struct و هو interface.
#define interface struct
#define PURE = 0
interface IFile
{
void Open() PURE;
void Close() PURE;
bool IsReadOnly() const PURE;
bool IsOpen() const PURE;
bool IsClosed() const PURE;
IStream Read(unsigned count) const PURE;
...
};
class File : public IFile
{
...
};
و الله ولي التوفيق
تم تعديل هذه المشاركة بواسطة C++er في 10 مارس 2013 في 06:38
مدونتي: C++ Tips and Tricks
Mr.B كتب:نادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.
معلومة جديدة
اشكرك على الموضوع
هل من الممكن القول
struct جزء من class
class ليس جزء من struct؟
إن المعلم والطبيب كلاهمــــا ... لا ينصحـان إذا همـا لم يكرمـا
فاصبر لدائـك إن أهنت طبيبه ... واصبــر لجهلك إن جفوت معلما
أخي المقدام
في ++C تكون struct مكافئة تماماً لـclass إلا في قضية واحدة وهي أن المحدد الافتراضي للعناصر في struct هو pubilc بينما في class فهو private
أما أن قارنت struct الموجود في C مع class الموجود في ++C
فيمكنك القول أن struct جزء من class لأنه يحوي المتحولات فقط بدون التوابع
والله ولي التوفيق