क्या सी ++ में मुख्य कक्षा के भीतर मौजूद किसी अन्य विधि से गैर स्थैतिक वर्ग सदस्य विधि को कॉल करने का कोई तरीका है? यदि हां, तो कोड कैसा दिखता है?किसी अन्य विधि से एक गैर स्टेटिक सदस्य विधि को कॉल करें
समस्या यह है कि, मैं इस specfic विधि को स्थिर के रूप में घोषित नहीं कर सकता, क्योंकि यह उसी वर्ग के भीतर अन्य विधियों का उपयोग करता है जो तब काम नहीं करते हैं यदि मैं एक स्थिर बना देता हूं।
मैं उपयोग करने के लिए कोशिश कर रहा हूँ:
MyClass::myClassMethod();
मुख्य वर्ग के भीतर एक विधि से
, लेकिन यह मुझे त्रुटि देता है: एक गैर स्थिर सदस्य संदर्भ एक विशिष्ट वस्तु के सापेक्ष होना चाहिए।
स्पष्ट करने के लिए, myClassMethod() की तरह MyClass के भीतर अन्य तरीकों का उपयोग करता:
void myClassMethod() {
...
anotherClassMethod();
}
इसलिए यदि मैं myClassMethod स्थिर बनाने के लिए थे यह anotherClassMethod बुला के साथ हस्तक्षेप होगा()।
पहले से पोस्ट किए गए उत्तरों में प्रश्न और टिप्पणियां पढ़ने के बाद, यह अभी भी उपयोगी होगा कि आप जो भी करने की कोशिश कर रहे हैं उसके बारे में कुछ और जानकारी प्राप्त करें। क्या 'myClassMethod' स्थिर है? इसे कहां से बुलाया जा रहा है? क्या आप विधि में तर्क बदल सकते हैं? आपको जो समस्या सौंपी गई है उसका लक्ष्य क्या है? – tmpearce
ऐसा लगता है कि आपको वास्तव में इस बारे में सोचना होगा कि आप यहां क्या व्यवहार कर सकते हैं। स्थैतिक और नो-स्टेटिक विधियों के साथ महत्वपूर्ण अंतर यह है कि उत्तरार्द्ध को कक्षा डेटा तक पहुंचने की आवश्यकता है, या शायद वर्चुअल कॉल करें जो आंतरिक रूप से वही करते हैं। यदि 'myClassMethod' 'elseClassMethod' को कॉल करता है जो गैर स्थैतिक है, तो क्या ऐसा करने की आवश्यकता है? यदि नहीं, तो उन्हें स्थिर बनाओ। यदि ऐसा है, तो जब आप डेटा तक पहुंचने का प्रयास करते हैं तो आप क्या होने की उम्मीद करते हैं? – Keith