मेरे पास कस्टम कक्षाओं की कई वस्तुएं हैं और मैं एक ऐसा वर्ग बनाने का प्रयास करता हूं जो std::tuple का उपयोग करके मेरी सभी पिछली वस्तुओं को संग्रहीत कर सके। दुर्भाग्य से मैं सी ++ टुपल्स के लिए नया हूँ। मैंने अब तक जो किया है वह नीचे है:

class Universe {

public : 
    std::tuple<Plain, Point, Rectangle> all_things;

    Universe() {
        this->all_things = std::make_tuple();
    };

    template <class T>
    void add( T obj ) {
        this->all_things.append(obj);
    }; 
}

यह वह त्रुटि है जो मुझे मिलती है (वही त्रुटि जो मुझे खाली कंस्ट्रक्टर का उपयोग करते समय हुई थी):

error: no matching function for call to 'std::tuple<Plain, Point, Rectangle>::tuple()'
   18 |     Universe() {

इसके अलावा, मैं यह जानना चाहूंगा कि क्या कोई चीज़ जोड़ने के लिए कोई टपल विधियाँ हैं। क्षमा करें, मुझे अभी तक नेट पर कोई उपयोगी जानकारी नहीं मिली है...

0
beokay 24 नवम्बर 2020, 15:33

1 उत्तर

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

आपको दिखाई देने वाली त्रुटि का अर्थ है कि टपल में शामिल सदस्यों में से एक डिफ़ॉल्ट-निर्माण योग्य नहीं है। ऐसे मामले में आपको टपल के सदस्यों के गैर-डिफ़ॉल्ट निर्माणकर्ताओं का उपयोग करने के लिए उपयुक्त तर्कों के साथ सदस्य टपल को प्रारंभ करना होगा।

इसके अलावा, मैं जानना चाहता हूं कि किसी चीज़ को जोड़ने के लिए कोई टपल विधि है या नहीं।

नहीं। एक टपल में इसके सभी सदस्य अपने जीवनकाल की शुरुआत से लेकर अंत तक होते हैं। तत्वों को जोड़ने या हटाने का कोई तरीका नहीं है।

2
eerorika 24 नवम्बर 2020, 12:56