Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में सदस्य फ़ंक्शन के लिए फ़ंक्शन पॉइंटर

सी ++ में, फ़ंक्शन पॉइंटर्स जब कक्षाओं या स्ट्रक्चर के सदस्य कार्यों से निपटते हैं, तो इसे ऑब्जेक्ट पॉइंटर या इस कॉल का उपयोग करके बुलाया जाता है। हम उस प्रकार के पॉइंटर का उपयोग करके केवल उस वर्ग (या डेरिवेटिव) के सदस्यों को कॉल कर सकते हैं क्योंकि वे सुरक्षित हैं।

उदाहरण

#include <iostream>
using namespace std;
class AB {
   public:
      int sub(int a, int b) {
         return a-b;
      }
      int div(int a, int b) {
         return a/b;
      }
};
//using function pointer
int res1(int m, int n, AB* obj, int(AB::*fp)(int,int)) {
   return (obj->*fp)(m,n);
}
//using function pointer
int res2(int m, int n, AB* obj, int(AB::*fp2)(int,int)) {
   return (obj->*fp2)(m,n);
}
int main() {
   AB ob;
   cout << "Subtraction is = " << res1(8,5, &ob, &AB::sub) << endl;
   cout << "Division is = " << res2(4,2, &ob, &AB::div) << endl;
   return 0;
}

आउटपुट

Subtraction is = 3
Division is = 2

  1. C++ फ़ंक्शन में 2D सरणी पास करना

    किसी फ़ंक्शन को तर्क के रूप में Arrays को पारित किया जा सकता है। इस कार्यक्रम में, हम 2 आयामी सरणी के तत्वों को एक फ़ंक्शन में पास करके प्रदर्शित करने के लिए प्रदर्शन करेंगे। एल्गोरिदम Begin The 2D array n[][] passed to the function show(). Call function show() function, the array n (n) is tra

  1. सी ++ में एक पूर्ण ऑब्जेक्ट पॉइंटर पर सदस्य फ़ंक्शन को कॉल करना

    एक वर्ग सदस्य फ़ंक्शन को NULL ऑब्जेक्ट पॉइंटर का उपयोग करके कॉल किया जा सकता है। नोट - यह अपरिभाषित व्यवहार है और कार्यक्रम के निष्पादन के बारे में कोई गारंटी नहीं है। वास्तविक परिणाम उपयोग किए गए कंपाइलर पर निर्भर करते हैं। इसे प्रदर्शित करने वाला एक कार्यक्रम इस प्रकार दिया गया है। उदाहरण #inclu

  1. एक सी ++ फ़ंक्शन में एक सरणी पास करना

    C++ फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी इंडेक्स के बिना ऐरे का नाम निर्दिष्ट करके किसी ऐरे को पॉइंटर पास कर सकते हैं। यदि आप किसी फ़ंक्शन में एक एकल-आयाम सरणी को तर्क के रूप में पास करना चाहते हैं, तो आपको निम्नलिखित तीन तरीकों में से एक मे