मैं वर्गों Foo
और Bar
इस तरह की स्थापना की है कहते हैं:क्या मैं बेस क्लास के आभासी फ़ंक्शन को कॉल कर सकता हूं यदि मैं इसे ओवरराइड कर रहा हूं?
class Foo
{
public:
int x;
virtual void printStuff()
{
std::cout << x << std::endl;
}
};
class Bar : public Foo
{
public:
int y;
void printStuff()
{
// I would like to call Foo.printStuff() here...
std::cout << y << std::endl;
}
};
के रूप में कोड में उसकी व्याख्या, मैं आधार वर्ग के समारोह है कि मैं कर रहा हूँ अधिभावी कॉल करने के लिए सक्षम होने के लिए करना चाहते हैं। जावा में super.funcname()
वाक्यविन्यास है। क्या यह सी ++ में संभव है?
[बेस क्लास से वर्चुअल फ़ंक्शन कॉल का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/397404/virtual-function-call-from-base-class) –
Googlers के लिए: ध्यान दें कि आपके पास ऐसे मुद्दे हो सकते हैं मैंने इसे कक्षा सदस्य चर के रूप में संग्रहीत करने के साथ किया जो कि सूचक नहीं है। मेरा उत्तर यहां देखें: http: // stackoverflow।कॉम/प्रश्न/47 9 8 9 66/सी-कॉलिंग-पूरी तरह से गलत-वर्चुअल-विधि-ऑफ-ऑब्जेक्ट/42429076 # 42429076 मैंने ठीक करने के लिए नया/हटाया शामिल है। – Andrew