2012-11-18 22 views
23

संभव डुप्लिकेट:
What is an undefined reference/unresolved external symbol error and how do I fix it?"अपरिभाषित संदर्भ"

मैं जावा के साथ कुछ अनुभव है, और अब ++ पाठ्यक्रम एक सी कर रहा हूं।

class Force { 

    public: 

    virtual ~Force(); 
    virtual VECTOR eval(VECTOR x, double t); 

}; 

class InvSquare : public Force { 

    public: 

    InvSquare(double A) { 

     c = A; 

    } 

    ~InvSquare(){}; 

    VECTOR eval(VECTOR x, double t) { // omitted stuff } 

    private: 
    double c; 

}; 

मैं कोशिश की है: मैं एक अंतरफलक लिखने का प्रयास करना चाहता था, लेकिन मैं विनाशकर्ता जो मैं, को हल करने भी इंटरनेट पर मदद से समर्थ हुए के साथ कुछ मुसीबत में पड़ गए हैं ... यहाँ मेरी कोड है बेस क्लास के लिए वर्चुअल विनाशक घोषित करने के लिए, और व्युत्पन्न वर्ग के लिए एक गैर-वर्चुअल एक घोषित करने के लिए, लेकिन मुझे "फोर्स :: ~ फोर्स() 'के अनिर्धारित संदर्भ के बारे में एक त्रुटि मिलती है। इसका क्या मतलब है, और मैं इसे कैसे ठीक कर सकता हूं?

मुझे माफ़ कर दो अगर यह एक मूर्ख सवाल है!

आप, आपकी मदद के लिए बहुत बहुत धन्यवाद noctilux

उत्तर

31

आप नाशक घोषित है, लेकिन यह परिभाषित नहीं। घोषणा को बदलें:

virtual ~Force() {} 

इसे कुछ भी करने के लिए परिभाषित करने के लिए।

तुम भी नहीं तो वे भी परिभाषित किया जा करने की आवश्यकता होगी, सार इंटरफ़ेस शुद्ध आभासी में सभी कार्यों बनाना चाहते:

virtual VECTOR eval(VECTOR x, double t) = 0; 
+0

आपको बहुत बहुत धन्यवाद - कि एक समस्या कम है ... – noctilux

संबंधित मुद्दे