مرجع غير محدد؟ هل هناك شيء لا أشاهده؟ (C ++، فئة Singleton)
المحلول
عندما تعلن عضوا ثابتا، يجب عليك أيضا تحديده في وحدة تجميع واحدة (وواحد فقط):
// a.h
class A
{
static int x;
};
// a.cpp
int A::x = 0;
لن يحتفظ إعلان المتغير في الفصل بالذاكرة، فقط أخبر التحويل البرمجي (من وحدات الترجمة الأخرى) أنه سيكون هناك متغير يمكن الوصول إليه بواسطة هذا الاسم محدد في مكان ما.
نصائح أخرى
لماذا استخدام أ Scene*
بدل من Scene
ب أنت تقول أساسا "استخدام static
لتخصيص مساحة كافية للمؤشر إلى Scene
"ثم في وقت التشغيل، وضعت ذلك Scene
كائن على كومة مع new
(وأنا أفترض أبدا delete
هو - هي).
بدلا من ذلك، فقط تخصيص ثابت وتهيئة ال Scene
هدف:
static Scene scene_;
ثم قم بتغيير جميع المراجع إلى المشهد وفقا لذلك (-> يصبح.):
scene_.addObject(&object);
هذا أسهل ويأخذ ضغطات المفاتيح أقل إلى التمهيد. C ++ لا يتطلب new
في كثير من الأحيان java أو c #.
لا تنتمي إلى StackOverflow