Problem implementing pure virtual class in C++ -


मेरे पास निम्न श्रेणी है:

  #include & lt; स्ट्रिंग & gt; # शामिल & lt; स्टैक & gt; #include & lt; queue & gt; # नाम स्थान std का उपयोग करके "map.h" शामिल करें; #ifndef CONTAINER_H_ #define CONTAINER_H_ स्ट्रीट PathContainer {int x, y; स्ट्रिंग पथ; }; वर्ग कंटेनर {सार्वजनिक: आभासी शून्य AddTile (स्ट्रिंग, फ़्लोरटाइल *) = 0; आभासी शून्य ClearContainer () = 0; आभासी पथसंचारकर्ता * NextTile () = 0; }; वर्ग स्टैकइंपलिप: सार्वजनिक कंटेनर {निजी: स्टैक & lt; पाथकॉन्टेनइअर & gt; CNTR; सार्वजनिक: StackImpl (); शून्य AddTile (स्ट्रिंग, नेबबरटाइल *); शून्य ClearContainer (); PathContainer * NextTile (); }; वर्ग क्यूइंपलिप: सार्वजनिक कंटेनर {निजी: कतार & lt; पाथकॉन्टेनइअर & gt; CNTR; सार्वजनिक: QueueImpl (); शून्य AddTile (स्ट्रिंग, नेबबरटाइल *); शून्य ClearContainer (); PathContainer * NextTile (); }; #endif  

जब मैं StackImpl या QueueImpl ऑब्जेक्ट की तरह ऐसा करने का प्रयास करता हूं:

  कंटेनर * cntr; Cntr = नया स्टैकइंपल ();  

या

  कंटेनर * cntr; Cntr = नया QueueImpl ();  

मुझे संकलित करने पर निम्नलिखित त्रुटि मिलती है:

escape.cpp: फ़ंक्शन में 'int main (int, char **)': escape.cpp: 26: त्रुटि: सार प्रकार 'स्टैकआईएमपीएल' कंटेनर के एक ऑब्जेक्ट को नहीं आवंटित कर सकते हैं। H: 23: नोट: क्योंकि निम्नलिखित वर्चुअल फ़ंक्शन 'स्टैकआईएमपीएल' के भीतर शुद्ध होते हैं: कंटेनर। H: 18: नोट: आभासी शून्य कंटेनर :: AddTile (std :: स्ट्रिंग, फ़्लोरटाइल *)

कोई भी विचार?

टाइपिड (नेबबरटाइल *)! = टाइपिड (फ्लोरटाइल *) । हस्ताक्षर भिन्न होते हैं, इसलिए वे "एक ही" विधि के रूप में भरोसा नहीं करते हैं भले ही नेबरबोइल से फ़्लोरटाइल से प्राप्त होता है।


Comments