अस्वीकरण: मैं सी ++ के लिए बहुत नया हूँ।

मेरे पास एक Container कक्षा और एक Item कक्षा है। ये दोनों समान Type के साथ सामान्य हैं:

कंटेनर.एच:

template<typename Type>
class Container
{
public:
    Container(Item<Type> item);
}

कंटेनर.सीपीपी:

#include "container.h"
#include "item.h"

template<typename Type>
Container<Type>::Container(Item<Type> item)
{
}

समस्या यह है कि कंटेनर के निर्माता पर एक त्रुटि दिखाई दे रही है:

अतिभारित फ़ंक्शन का कोई उदाहरण "कंटेनर :: कंटेनर" निर्दिष्ट प्रकार से मेल नहीं खाता

कंस्ट्रक्टर त्रुटि

मैं इसे कैसे ठीक करूं?

0
user16831673 4 सितंबर 2021, 23:10

2 जवाब

सबसे बढ़िया उत्तर

आमतौर पर इसे इस तरह किया जाता है, कंटेनर

template<typename Type>
class Container
{
public:
    Container(const Item<Type>& item)
    {
       // implementation goes here
    }
};
0
P Kramer 4 सितंबर 2021, 20:20

आपको कंटेनर.tpp (टेम्पलेट फ़ाइल) बनाने और कंटेनर में अपनी कक्षा पद्धति के कार्यान्वयन को लिखने की आवश्यकता है

इस कदर:

कंटेनर.एच:

template<typename Type>
class Container
{
public:
    Container(Item<Type> item);
}
#include" container.tpp" //write this at the end of container.h

कंटेनर में। टीपीपी

container.tpp:

template<typename Type>
Container<Type>::Container(Item<Type> item)
{
}
0
Roméo KAKPO 4 सितंबर 2021, 20:18