لغة البرمجة ج has لديها العديد من التصاميم والأدوات المختلفة للعمل مع الذاكرة. واحد منهم هو الكلمة الرئيسية غنيو. يتم استخدام هذه الكلمة الرئيسية في لغة سي/ / كلي لإنشاء كائنات في كومة مدارة أو "كومة مدارة".
تسمح لك الكومة المدارة ، على عكس الكومة العادية ، بإدارة دورة حياة الكائنات تلقائيا وتحرير الذاكرة تلقائيا عندما لا يكون الكائن قيد الاستخدام. هذا يبسط إلى حد كبير العمل مع الذاكرة ويتجنب تسرب الذاكرة.
يتم استخدام الكلمة الرئيسية غنيو لإنشاء كائن مدار جديد من النوع المحدد. على سبيل المثال:
سلسلة ^ ستر = غنيو سلسلة ("نص المثال");
في هذا المثال ، يتم إنشاء كائن سلسلة جديد في الكومة المدارة ، والتي تحتوي على النص المحدد. هنا ، يشير الحرف " ^ " إلى أن متغير ستر هو مؤشر لكائن مدار.
استخدام الكلمة الرئيسية غنيو اختياري ، لكنه يسمح لك الجمع بين مزايا ج and ولغات البرمجة لا تنسى مثل ج # أو جافا. مع غنيو ، يمكنك إنشاء الكائنات التي تحرر الذاكرة تلقائيا ، وإدارة دورة حياتها ، وضمان سلامة النوع.
- ما هو الجديد في ج C
- لماذا استخدام غنيو في ج C
- كيفية استخدام غنيو في ج C
- الخطوة 1: قم بتوصيل ملفات الرأس المطلوبة
- الخطوة 2: تحديد فئة أو هيكل
- الخطوة 3: إنشاء كائن باستخدام غنيو
- الخطوة 4: استخدم الكائن في التعليمات البرمجية الخاصة بك
- سؤال وجواب
- ما هو الجديد في ج??
- كيفية استخدام غنيو في ج??
- هل من الممكن استخدام غنيو لإنشاء كائنات غير المدارة?
- كيف يعمل جمع القمامة مع غنيو?
- هل من الممكن استخدام غنيو بالتزامن مع معيار ج??
- ما هي مزايا وعيوب استخدام غنيو في ج??
ما هو الجديد في ج C
غنيو في ج is هو عامل يستخدم لإنشاء كائن في الذاكرة الديناميكية مع إدارة الذاكرة التلقائية.
يتم استخدام المشغل غنيو في ج/ / كلي ، وهو البديل من لغة ج++ التي تدعم وقت التشغيل لغة مشتركة (كلر) وقت التشغيل. كلر هو المسؤول عن إدارة الذاكرة و C / تنفيذ التعليمات البرمجية كلي على platform.NET.
يمكن استخدام مشغل غنيو لإنشاء مثيل لفئة مدارة أو صفيف.
مثال على استخدام مشغل غنيو لإنشاء مثيل لفئة:
ميكلاس ^ أوبج = غنيو ميكلاس();
في هذا المثال ، ميكلاس هو فئة المدارة التي تم تعريفها في رمز ك/ / كلي. يقوم عامل تشغيل غنيو بإنشاء مثيل للفئة وإرجاع مؤشر إلى هذا المثيل.
يمكن أيضا استخدام مشغل غنيو لإنشاء صفائف:
صفيف^ آر = غنيو صفيف(10);
في هذا المثال ، يتم إنشاء مجموعة من الأعداد الصحيحة بطول 10. المشغل غنيو يخصص الذاكرة لمجموعة وإرجاع مؤشر إليها.
يقوم مشغل غنيو تلقائيا بإدارة الذاكرة وتحريرها عندما لا يكون كائن أو صفيف قيد الاستخدام. هذا يتجنب تسرب الذاكرة ويبسط عملية العمل مع الذاكرة في ج/ / كلي.
وبالتالي ، فإن مشغل غنيو هو أداة قوية لإنشاء وإدارة الكائنات والمصفوفات في ج++ / كلي باستخدام إدارة الذاكرة التلقائية.
لماذا استخدام غنيو في ج C
غنيو هي كلمة رئيسية في لغة البرمجة سي programming التي يتم استخدامها لإنشاء كائنات في كومة مدارة. هذا هو سمة من سمات اللغة ج/ / كلي ، الذي يوفر القدرة على كتابة التعليمات البرمجية المدارة على platform.NET.
وهنا بعض الأسباب التي يمكنك استخدام غنيو في ج C:
- العمل مع كائنات صافي: الكلمة غنيو يسمح لك لإنشاء كائنات من الفئات المحددة في جمعيات صافي. يمكن أن يكون هذا مفيدا إذا كنت ترغب في استخدام الوظائف المتوفرة فقط في .
- باستخدام كومة الذاكرة المدارة: غنيو يسمح لك لتخصيص الذاكرة لكائن في كومة الذاكرة المدارة ، والتي يتم تحريرها تلقائيا من قبل جامع القمامة. هذا يجعل من السهل العمل مع الذاكرة ويمنع تسرب الذاكرة.
- التكامل مع بيئة صافي: إذا كنت ترغب في إنشاء تطبيق باستخدام مكتبات صافي أو متكاملة مع بيئة صافي ، غنيو يسمح لك لإنشاء الكائنات التي تتم معالجتها بواسطة آلية إدارة الذاكرة صافي.
وكقاعدة عامة ، وذلك باستخدام غنيو في ج optional هو اختياري ويعتمد على ما إذا كنت بحاجة إلى القدرة على العمل مع .صافي الكائنات أو الذاكرة في كومة الذاكرة المدارة. إذا لم تكن بحاجة إلى هذه الوظيفة ، فيمكنك الاستمرار في استخدام عوامل التشغيل المعتادة لإنشاء كائنات وإدارة الذاكرة.
كيفية استخدام غنيو في ج C
غنيو هي كلمة رئيسية في لغة ج used تستخدم لتخصيص الذاكرة وإنشاء كائنات في كومة الذاكرة المؤقتة (كومة الذاكرة المؤقتة) باستخدام آلية جمع القمامة. يتم استخدامه لإنشاء كائنات مدارة داخل الإطار الصافي.
لاستخدام غنيو في ج++ ، تحتاج إلى اتباع بعض الخطوات البسيطة:
};
استخدم الكلمة الأساسية غنيو لإنشاء كائن من الفئة أو الهيكل المحدد:
ميكلاس^ ميوبجيكت = غنيو ميكلاس();
إيلاء الاهتمام لاستخدام رمز^. هذا يعني أن الكائن الذي تم إنشاؤه هو مؤشر لكائن مدار ، ويشير إلى أن الكائن موجود على الكومة ، وليس على مكدس الذاكرة.
صفيف ^ أرقام = مجموعة جديدة(5) { 1, 2, 3, 4, 5 };
في هذا المثال ، نقوم بإنشاء مصفوفة مدارة من خمسة عناصر كثافة العمليات
وتهيئة ذلك مع القيم 1, 2, 3, 4, 5.
الآن أنت تعرف كيفية استخدام غنيو في ج create لإنشاء الكائنات المدارة في ذاكرة كومة الذاكرة المؤقتة. إنها أداة قوية تجعل من السهل العمل مع إدارة الذاكرة والكائنات في ج++.
- الخطوة 1: قم بتوصيل ملفات الرأس المطلوبة
- قبل البدء في استخدام غنيو في سي++ ، تحتاج إلى توصيل ملفات الرأس المناسبة. سيسمح لك ذلك باستخدام الفئات والوظائف اللازمة لإنشاء الكائنات والعمل معها.
لاستخدام غنيو في ج++ ، سوف تحتاج إلى ملفات الرأس التالية:
جكروت.ح: يوفر ملف الرأس هذا فئة غكروت ، وهو غلاف فوق مرجع إلى كائن مدار.
<url>.h: يوفر ملف الرأس هذا وظائف التحويل بين سلاسل ج standard القياسية و. صافي السلاسل.
فيما يلي مثال على توصيل ملفات الرأس هذه في التعليمات البرمجية الخاصة بك:
# تضمين / / توصيل غكروت.ح ملف الرأس
# تضمين / / توصيل المشير_بستد.ح ملف الرأس
بعد توصيل ملفات الرأس هذه ، ستكون جاهزا لاستخدام غنيو في التعليمات البرمجية الخاصة بك وإنشاء كائنات جامع القمامة في style.NET.
الخطوة 2: تحديد فئة أو هيكل
- بعد إنشاء مشروع جديد باستخدام فيسوال ستوديو ، فقد حان الوقت لتحديد فئة أو هيكل في التطبيق الخاص بك. تمثل الفئة أو البنية العناصر الأساسية للبرمجة الموجهة للكائنات وتسمح لك بدمج البيانات والوظائف في كائن واحد.
- بمجرد تحديد فئة أو بنية ، يمكنك إنشاء مثيلات (كائنات) من تلك الفئة أو البنية واستخدامها في برنامجك. الطبقات والهياكل هي اللبنات الأساسية من ج allow وتسمح لك بإنشاء برامج أكثر تعقيدا ومرونة.
- لتحديد فئة أو بنية ، تحتاج إلى:
حدد فئة الكلمة الرئيسية أو البنية ، متبوعا باسم الفئة أو البنية.
تحديد متغيرات الأعضاء من فئة أو هيكل. تمثل متغيرات الأعضاء البيانات المخزنة في الكائن.
تحديد وظائف الأعضاء في فئة أو هيكل. تؤدي وظائف الأعضاء إجراءات على البيانات المخزنة في الكائن.
مثال على تعريف الفئة:
فئة فئة {
الجمهور: / / نطاق الجمهور
// متغيرات الأعضاء في الفصل
الباحث المتغير 1;
الباحث المتغير 2;
// وظائف الأعضاء في الفصل
وظيفة باطلة 1 () {
// رمز الوظيفة
}
وظيفة باطلة 2 () {
// رمز الوظيفة
}
};
مثال على تعريف الهيكل:
هيكل الهيكل {
// المتغيرات-أعضاء الهيكل
الباحث المتغير 1;
الباحث المتغير 2;
// الوظائف-أعضاء الهيكل
وظيفة باطلة 1 () {
// رمز الوظيفة
}
وظيفة باطلة 2 () {
// رمز الوظيفة
}
};
في المثال أعلاه ، يمكنك أن ترى أن كلا من الفئة والهيكل لهما متغيرات عضو ووظائف عضو. ومع ذلك ، على عكس الفئة ، يحتوي الهيكل على نطاق افتراضي للجمهور ، وبالنسبة للفئة ، يجب تحديد هذا النطاق بشكل صريح.
الآن بعد أن عرفت كيفية تحديد فئة أو بنية ، فأنت على استعداد للانتقال إلى الخطوة التالية — إنشاء مثيلات للفئة أو البنية واستخدامها في برنامجك.
الخطوة 3: إنشاء كائن باستخدام غنيو
والآن بعد أن توصلنا إلى كيفية إنشاء فئة وتحديد خصائصها وأساليبها ، دعنا ننتقل إلى إنشاء كائن من هذه الفئة باستخدام مشغل غنيو في ج/ / كلي.
يتم استخدام مشغل غنيو لإنشاء كائن مدار في ذاكرة الكومة المدارة. يقوم هذا المشغل بإرجاع مؤشر إلى الكائن الذي تم إنشاؤه. هنا مثال على كيفية استخدامه:
اسم الفئة^ اسم الكائن = اسم الفئة الجديدة ();
في المثال أعلاه ، كلاسنام هو اسم فئة لدينا ، و أوبجكتنام هو اسم المتغير الذي سيشير الكائن الذي تم إنشاؤه.
دعونا ننظر إلى مثال على استخدام مشغل غنيو. لدينا فئة شخص مع اثنين من خصائص الاسم والعمر. Давайте создадим объект этого класса:
# تشمل
# تشمل
# تشمل
باستخدام نظام مساحة الاسم;
باستخدام مساحة الاسم الأمراض المنقولة جنسيا;
المرجع فئة الشخص
{
العامة:
سلسلة الملكية ^ الاسم;
الملكية كثافة العمليات العمر;
};
كثافة العمليات الرئيسية()
{
شخص^ شخص = شخص جديد ();
الشخص- > العمر = 25;