कोड स्निपेट नीचे एक त्रुटि पैदा करता है:सी ++ सार वर्ग पैरामीटर त्रुटि वैकल्पिक हल
#include <iostream>
using namespace std;
class A
{
public:
virtual void print() = 0;
};
void test(A x) // ERROR: Abstract class cannot be a parameter type
{
cout << "Hello" << endl;
}
वहाँ अन्य इस त्रुटि के लिए एक समाधान/वैकल्पिक हल है/
virtual void print() = { }
साथ
virtual void print() = 0;
की जगह की तुलना में बेहतर
संपादित करें: मैं मूल वर्ग ए को पॉली का उपयोग करके पैरामीटर के रूप में विस्तार/कार्यान्वित करने में सक्षम होना चाहता हूं morphism (यानी A* x = new B() ; test(x);
)
चीयर्स
परिभाषा के अनुसार एबस्टारक्ट क्लास को स्वयं ही तत्काल नहीं किया जाना चाहिए। व्युत्पन्न कक्षाओं द्वारा इसे विधियों को ओवरराइड करने की आवश्यकता है। बस उत्सुक, आप ऐसा करके क्या हासिल करने की कोशिश कर रहे हैं? – Mahesh
मैं ए एक्स = नया बी() जैसे कुछ करना चाहता हूं और विस्तारित/कार्यान्वित करने वाले किसी वर्ग को पास करना चाहता हूं। मुझे लगता है कि मुझे लगता है कि प्रश्न बेहतर है। – Cemre
समाधान/समाधान के साथ आने की कोशिश करने से पहले हमें समस्या को समझने की आवश्यकता है। "मूल्य द्वारा" पैरामीटर के रूप में एक अमूर्त वर्ग को पारित करने का विचार कोई समझ नहीं आता है। तुम क्या करने की कोशिश कर रहे हो? – AnT