क्यों सी ++ संकलक इस त्रुटि देता है? मैं बी से lol() तक क्यों पहुंच सकता हूं, लेकिन rofl() [पैरामीटर के बिना] तक नहीं पहुंच सकता। पकड़ कहाँ है?विरासत और विधि अधिभार
class A
{
public:
void lol(void) {}
void rofl(void) { return rofl(0);}
virtual void rofl(int x) {}
};
class B : public A
{
public:
virtual void rofl(int x) {}
};
int _tmain(int argc, _TCHAR* argv[])
{
A a;
a.lol();
a.rofl(1);
a.rofl();
B b;
b.lol();
b.rofl(1);
b.rofl(); //ERROR -> B::rofl function does not take 0 arguments
return 0;
}
+1 मुझसे अधिक तेज़ :) – AraK
हाँ, लेकिन ए :: rofl() वर्चुअल नहीं है। विचार है - rofl() allways वर्चुअल rofl (0) कहते हैं। –
@ 0xDEAD BEEF: उस स्थिति में, आप इसका उपयोग करने के लिए _intend_ का उपयोग करते हैं, इसलिए 'ए :: आरओएफएल का उपयोग करके' कंपाइलर को यह स्पष्ट करें। – xtofl