मैं एक गेम पर काम कर रहा हूं और एक दिलचस्प सवाल है। मेरे पास कुछ गेम-व्यापी स्थिर मान हैं जिन्हें मैं एक फ़ाइल में कार्यान्वित करना चाहता हूं।सी ++ क्रॉस-फाइल स्थिरांक को परिभाषित करने का सबसे अच्छा तरीका
constants.cpp
extern const int BEGINNING_HEALTH = 10;
extern const int BEGINNING_MANA = 5;
constants.hpp
extern const int BEGINNING_HEALTH;
extern const int BEGINNING_MANA;
और फिर फाइल सिर्फ #include "constants.hpp" यह महान काम कर रहा था, जब तक: अभी मैं इस तरह कुछ है मुझे एक स्थिरांक को टेम्पलेट पैरामीटर के रूप में उपयोग करने की आवश्यकता थी, क्योंकि बाहरी रूप से जुड़े स्थिरांक वैध टेम्पलेट पैरामीटर नहीं हैं। तो मेरा सवाल यह है कि इन स्थिरांक को लागू करने का सबसे अच्छा तरीका क्या है? मुझे डर है कि केवल हेडर फ़ाइल में स्थिरांक डालने से उन्हें प्रत्येक अनुवाद इकाई में परिभाषित किया जाएगा। और मैं मैक्रोज़ का उपयोग नहीं करना चाहता।
धन्यवाद
मुझे पिछले BEGINNING_NAME [] में एक कॉपी/पेस्ट बग पर संदेह है। क्या आप इसे BEGINNING_NAME के रूप में लिखना चाहते थे? –
आप सही, तय हैं। धन्यवाद। – Tom
आपको "स्थैतिक" की आवश्यकता है, अन्यथा आपको आंतरिक लिंकेज या अधिक आदर्श रूप से, "# परिभाषित" के समतुल्य मानों के साथ समतुल्य नहीं मिलता है। –