मुझे कक्षा में एक स्थिर संपत्ति तक पहुंचने में समस्याएं आ रही हैं।सी ++ स्टेटिक प्रॉपर्टी
shape.obj : error LNK2001: unresolved external symbol "public: static class TCollection<class Shape *> Shape::shapes"
वर्ग की परिभाषा है::
class Shape {
public:
static Collection<Shape*> shapes;
static void get_all_instances(Collection<Shape*> &list);
};
और स्थिर विधि से किया जा रहा के कार्यान्वयन:
void Shape::get_all_instances(Collection<Shape*> &list) {
list = Shape::shapes;
}
यह की तरह लगता है मैं निम्न त्रुटि हो रही है shapes
संपत्ति शुरू नहीं की जा रही है।
वाह त्वरित प्रतिक्रिया के लिए धन्यवाद। शोध करने के लिए घंटों लगे और स्टैक ओवरफ्लो पर लगभग 1 मिनट लग गए। – Louis
मुझे लगता है कि आपको एक स्थैतिक चर के साथ-साथ सार्वजनिक चर होने पर बहुत खेद होगा। क्या आपको वाकई इसकी ज़रूरत है? आप बस एक कॉन्स संग्रह क्यों पास नहीं करते हैं और ऑब्जेक्ट जहां भी आपको सभी आकारों की सूची चाहिए? इससे अन्य डेवलपर्स को आकार :: get_all_instances() को कॉल करने के लिए प्रोत्साहित किया जाएगा, जब भी उन्हें स्पष्ट रूप से पास करने की बजाय सूची की आवश्यकता हो। यह सभी प्रकार की समस्याओं का कारण बन जाएगा, जब आप परीक्षण करना चाहते हैं या आप आकृतियों के उपन्यासों पर काम करना चाहते हैं। –
हाँ यह इस समय सार्वजनिक रूप से उग्र डीबगिंग के कारण सार्वजनिक है। – Louis