एक प्रकार bar
किस प्रकार bar
के संदर्भ के लिए रूपांतरण ऑपरेटरों उपयोगकर्ता परिभाषित किया गया है पर विचार करें? इसके अलावा, अगर यह ऑपरेटर deleted
थे तो इसका क्या अर्थ है? क्या सुविधा का कोई दिलचस्प उपयोग है?किस प्रकार के परिचालन ऑपरेटर को खुद ही बुलाया जाएगा?</p> <pre><code>struct bar { operator bar &(); operator const bar &() const; }; </code></pre> <p>जब ये रूपांतरण से लागू होगा:
निम्नलिखित कार्यक्रम या तो रूपांतरण लागू करने के लिए प्रकट नहीं होता है:
#include <iostream>
struct bar
{
operator bar &()
{
std::cout << "operator bar &()" << std::endl;
return *this;
}
operator const bar &() const
{
std::cout << "operator const bar &() const" << std::endl;
return *this;
}
};
void foo(bar x)
{
}
int main()
{
bar x;
bar y = x; // copy, no conversion
y = x; // assignment, no conversion
foo(x); // copy, no conversion
y = (bar&)x; // no output
y = (const bar&)x; // no output
return 0;
}
ऐसा लगता है कि एक कंपाइलर तब एक उपयोगी चेतावनी उत्सर्जित कर सकता है। –
धन्यवाद। कोई विचार है कि मुझे ऐसे कार्यों को परिभाषित करने की अनुमति क्यों है यदि उनका कभी भी उपयोग नहीं किया जा सकता है? –