मुझे एक लूप मिला जिसमें मैं एक अमूर्त वर्ग की वस्तु पर std :: unique_ptr लौटने वाले फ़ंक्शन का उपयोग करता हूं। मैं इन वस्तुओं को पुश_बैक के माध्यम से std :: वेक्टर में स्टोर करना चाहता हूं। लेकिन चूंकि वस्तुओं सार प्रकार के होते हैं मैं निम्नलिखित त्रुटि मिलती है: लाइनstd :: unique_ptr द्वारा दिए गए एक अमूर्त वर्ग की ऑब्जेक्ट्स के वेक्टर को कैसे स्टोर करें?
cells.push_back(std::move(*cell));
जहां कोशिकाओं सार प्रकार का एक std::vector
और cell
है प्रकार की है के लिए
error: cannot allocate an object of abstract type
std::unique_ptr<AbstractType>&& cell
(मैं वास्तव में एक हैंडलर कक्षा में cell
पास करता हूं) मुझे पता है कि कोई एक अमूर्त प्रकार को चालू नहीं कर सकता है और जैसा कि मैं मैं std को समझ रहा हूं: चालक ऑपरेटर को किसी भी तरह वस्तु को तुरंत चालू करने की आवश्यकता है?
क्या कोई मेरी मदद कर सकता है कि समस्या का प्रबंधन कैसे करें? या समारोह (परियोजना का मेरा हिस्सा नहीं) एक अमूर्त प्रकार की वस्तु के लिए एक अद्वितीय सूचक वापस नहीं करना चाहिए?
क्या हम एक 'वेक्टर <सार तत्व टाइप' के बारे में बात कर रहे हैं? वह काम नहीं करेगा। एक 'वेक्टर
आप सही हैं! मैं अंधेरा था, मैंने इसे 'वेक्टर
soriak
@ आर। मार्टिन्हो फर्नांडीस: आपकी टिप्पणी पर +1 (यह एक जवाब होना चाहिए)। आपको दिमाग पढ़ना होगा! –