2013-03-07 6 views
11

मुझे एक उत्सुक समस्या है, और मुझे पूरा यकीन नहीं है कि समस्या क्या है। मैं, एक वर्ग LinkedArrayList नामक एक typename टेम्पलेट का उपयोग करता है बना रहा हूं, जैसा कि नीचे कोड में दिखाया गया है:कक्षा टेम्पलेट के लिए तर्क सूची अनुपलब्ध है

#pragma once 

template <typename ItemType> 

class LinkedArrayList 
{ 

private: 

class Node { 
    ItemType* items; 
    Node* next; 
    Node* prev; 
    int capacity; 
    int size; 
}; 

Node* head; 
Node* tail; 
int size; 

public: 

void insert (int index, const ItemType& item); 
ItemType remove (int index); 
int find (const ItemType& item); 
}; 

अब, यह किसी भी त्रुटि या समस्याओं नहीं देता है। हालांकि, .cpp फ़ाइल में फ़ंक्शंस बनाने से मुझे त्रुटि मिलती है "क्लास टेम्पलेट के लिए तर्क सूची 'LinkedArrayList' गायब है।" यह भी कहता है कि आइटम टाइप अपरिभाषित है।

#include "LinkedArrayList.h" 

void LinkedArrayList::insert (int index, const ItemType& item) 
{} 

ItemType LinkedArrayList::remove (int index) 
{return ItemType();} 

int find (const ItemType& item) 
{return -1;} 

ऐसा लगता है कि यह टेम्पलेट के साथ कुछ है की तरह, अगर मैं इसे बाहर टिप्पणी और ints के कार्यों में ItemTypes बदल क्योंकि, ऐसा नहीं: यहाँ कोड, बहुत ही सरल सीपीपी में है, कोई त्रुटि नहीं है। इसके अलावा, अगर मैं अलग-अलग .cpp रखने के बजाय .h में सभी कोड करता हूं, तो यह ठीक काम करता है।

समस्या के स्रोत पर कोई भी मदद की सराहना की जाएगी।

धन्यवाद।

#include "LinkedArrayList.h" 

template<typename ItemType> 
void LinkedArrayList<ItemType>::insert (int index, const ItemType& item) 
{} 

template<typename ItemType> 
ItemType LinkedArrayList<ItemType>::remove (int index) 
{return ItemType();} 

template<typename ItemType> 
int LinkedArrayList<ItemType>::find (const ItemType& item) 
{return -1;} 

दूसरे, उन परिभाषाओं एक .cpp फ़ाइल में नहीं रखा जा सकता, क्योंकि संकलक नहीं होगा:

सभी की

उत्तर

13

सबसे पहले, यह कैसे आप एक वर्ग टेम्पलेट के सदस्य कार्यों के लिए एक परिभाषा प्रदान करना चाहिए है इन्हें आमंत्रण के अपने बिंदु से पूरी तरह से तत्काल करने में सक्षम। उदाहरण के लिए, this Q&A on StackOverflow देखें।

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