आप वैश्विक ऑपरेटरों को देखें, तो आप पहले से ही कुछ जवाब प्राप्त हुआ है। कुछ विशेष मामलों में, हालांकि, अधिभारित ऑपरेटर फ़ंक्शंस का उपयोग करना भी उपयोगी हो सकता है।
यह मामूली हो सकता है;
#include <iostream>
template<typename opType, typename T>
int operation(opType op, T a, T b)
{
return (a.*op)(1) + (b.*op)(1);
}
struct linear
{
int operator()(int n) const {return n;}
int operator[](int n) const {return n * 10;}
};
int main()
{
linear a, b;
std::cout << operation(&linear::operator(), a, b) << std::endl
<< operation(&linear::operator[], a, b);
return 0;
}
उत्पादन: फिर भी यह है, जिसके कारण मैं एक उदाहरण पोस्ट कुछ मामलों में उपयोगी हो सकता है
2
20
(एक int, ख) -> (एक int, int ख)। http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=141 – DumbCoder