إنشاء كائنات: مع أو بدون جديد
عند إنشاء كائنات في لغة C، يمكن للمبرمجين استخدام إما عامل التشغيل "الجديد" أو إنشاء مثيل لهم مباشرة بدونها. في حين أن كلا النهجين ينشئان كائنات، إلا أنهما يختلفان في عدة جوانب أساسية.
يؤدي إنشاء كائن بدون "جديد" إلى الاحتفاظ مباشرة بالذاكرة له في النطاق الحالي. يتم ذلك عادةً على المكدس وينتج عنه كائن ذو عمر افتراضي تلقائي. يتم إنشاء الكائن وتدميره تلقائيًا ضمن النطاق الذي تم تعريفه.على سبيل المثال:الوقت t(12, 0, 0); // t هو كائن زمني
Time t(12, 0, 0); // t is a Time objectفي الكود أعلاه، يتم إنشاء كائن "الوقت" "t" على المكدس ويرتبط عمره بالنطاق الحالي.
مع جديد
يؤدي استخدام "جديد" لإنشاء كائن إلى تخصيص الذاكرة له ديناميكيًا على الكومة. يسمح هذا بإنشاء الكائن وتدميره بشكل صريح عند انتهاء عمره الافتراضي. يقوم المؤشر "t" بتخزين عنوان الكومة للكائن.على سبيل المثال:Time* t = new Time(12, 0, 0); // t هو مؤشر لكائن وقت مخصص ديناميكيًاTime* t = new Time(12, 0, 0); // t is a pointer to a dynamically allocated Time objectهنا، يتم تعيين عنوان الكومة للمؤشر "t" لكائن "Time" الذي تم إنشاؤه حديثًا. عمر الكائن مستقل عن النطاق ويستمر حتى يتم استخدام عامل "الحذف" لتحرير ذاكرته.
الاختلافات الرئيسية
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3