में निर्माता के लिए सिंटेक्स मैं एक सामान्य परिपत्र बफर टेम्पलेट बनाने की कोशिश कर रहा हूं लेकिन कुछ वाक्यविन्यास त्रुटि है जिसे मैं समझ नहीं पा रहा हूं। त्रुटि मेरे कन्स्ट्रक्टर में है, हालांकि ऐसा लगता है कि मैंने विनाशक को उसी तरह पैरामीटर किया है और यह एक काम करता है। मैंने स्ट्रॉस्ट्रप सी ++ में उदाहरण का पालन किया है, और वह स्कोप रेज़ोल्यूशन ऑपरेटर से पहले और फ़ंक्शन नाम में पैरामीटर का उपयोग करता है, जैसा कि मेरे पास है। मुझे यह भी निश्चित है कि कोई परिपत्र निर्भरता नहीं है क्योंकि मैं केवल एक फ़ाइल संकलित कर रहा हूं। इसके अलावा कार्यान्वयन और घोषणाएं एक ही फ़ाइल (CircBuf.h) में हैं और कोई संबंधित .cpp फ़ाइल नहीं है, इसलिए लिंकिंग भी कोई समस्या नहीं होनी चाहिए। मैंने this समाधान के अनुसार "इनलाइन" कीवर्ड जोड़ने का प्रयास किया है और मुझे एक ही त्रुटि मिलती है।टेम्पलेट वर्ग
/* CircBuf.h */
template<typename T> class CircBuf {
// don't use default ctor
CircBuf();
int size;
T *data;
public:
CircBuf(int);
~CircBuf();
};
template<typename T> CircBuff<T>::CircBuf<T>(int i) {
data = new T[i];
}
template<typename T> CircBuf<T>::~CircBuf<T>() {
delete data;
}
makefile
all:
g++ -g -pedantic CircBuf.h -o prog
संकलक त्रुटि
CircBuf.h:13:22: error: ‘CircBuff’ does not name a type
आपने एक उदाहरण में 'सर्कबफ' की बजाय 'सर्कबफ' लिखा था। यह संकलक आपको बताने की कोशिश कर रहा है। –