मेरे पास सवाल है, मेरे कोड उदाहरण में असाइनमेंट अभिव्यक्ति को वापस करने का क्या अर्थ है? मेरे पास एक enum है, और मैं ++: ऑपरेटर ओवरराइड किया है। तो मेरे छोटे उदाहरण में लिग्स के बीच स्विच करना संभव है - लेकिन कोड में कोई हिस्सा नहीं है जिसे मैं समझ नहीं पा रहा हूं। कोड संकलित और ठीक काम करते हैं।असाइनमेंट ऑपरेटर का मतलब रिटर्न स्टेटमेंट्स में क्या होता है, जैसे रिटर्न टी = ...?
कोड:
enum Traficlight
{green, yellow, red };
Traficlight& operator++(Traficlight& t)
{
switch (t)
{
case green: return t = Traficlight::yellow; //Here <--
case yellow: return t = Traficlight::red; //Here <--
case red: return t = Traficlight::green; //Here <--
default:
break;
}
}
int main()
{
Traficlight Trafic = Traficlight::green;
Trafic++;
if (Trafic == Traficlight::yellow)
{
cout << "Light is Yellow" << endl;
}
string in;
cin >> in;
}
क्या "वापस टी = Traficlight :: पीले" का क्या मतलब है, क्यों नहीं कर सकते मैं सिर्फ "Traficlight :: पीले" वापस जाएँ।
असाइनमेंट ऑपरेटर के वापसी मूल्य पर अधिक जानकारी के लिए, यहां देखें: http://stackoverflow.com/questions/14697643/low-level-details-of-cc-assignment-operator-implementation-what-does- यह-रेटू –
यह 't = x जैसा ही है; वापसी x; '। – 0x499602D2
यह कोड संकलित नहीं करता है: आप preincrement 'ऑपरेटर ++' को परिभाषित करते हैं लेकिन postincrement 'ऑपरेटर ++' का उपयोग करते हैं। – aschepler