• 0
طموحة بلا حدود

[ تمت الإجابة ]طلب شرح : التراكيب في ++C

سؤال

السلام عليكم اساتذتي الكرام

 

ياريت ممكن توضيح عن السجلات او التراكيب في سي++

هل يمكن ان تحتوى على دوال مع المتغيرات (الحقول) داخل السجل

 

اذا كان نعم   طيب ايش الفرق بينها وبين الclass

 

ولكم كل الشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

هل يمكن ان تحتوى على دوال مع المتغيرات (الحقول) داخل السجل

 

نعم، فقط في 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 والبنى فقط لتخزين البيانات.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.

 

أيضا يتم استخدامه ليمثل abstract class او interface، العديد من مبرمجي ++c يقومموا بإنشاء مسمي اخر لـ struct و هو interface.

 

#define interface struct#define PURE = 0interface 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
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.

 

معلومة جديدة

اشكرك على الموضوع

هل من الممكن القول

struct جزء من class

class ليس جزء من struct؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي المقدام 

في ++C تكون struct مكافئة تماماً لـclass إلا في قضية واحدة وهي أن المحدد الافتراضي للعناصر في struct هو pubilc بينما في class فهو private

أما أن قارنت struct  الموجود في C مع class الموجود في ++C 

فيمكنك القول أن struct جزء من class لأنه يحوي المتحولات فقط بدون التوابع

 

والله ولي التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .