बस एक त्वरित सवाल।वापसी के लिए एक निर्माता का उपयोग
मैंने कुछ कोड लिखा है जो एक कस्टम क्लास कमांड देता है, और मैंने जो कोड लिखा है वह ठीक काम करता है। मैं सोच रहा था कि क्या कोई कारण है कि मुझे ऐसा नहीं करना चाहिए। यह कुछ इस तरह है:
Command Behavior::getCommand()
{
char input = 'x';
return Command (input, -1, -1);
}
वैसे भी, मैंने पढ़ा है कि निर्माताओं के लिए एक वापसी मूल्य नहीं होती हैं, लेकिन इस छ में काम करता है ++।
किसी भी सलाह के लिए धन्यवाद,
रिज़
यह ध्यान दिया जाना चाहिए: यह, अर्थात्, एक अस्थायी वस्तु बनाता है, फिर इसे फ़ंक्शन रिटर्न के रूप में कॉपी करता है। हालांकि, कंपाइलर्स को ऐसा करने की अनुमति है जिसे रिटर्न-वैल्यू ऑप्टिमाइज़ेशन या आरवीओ कहा जाता है। इसका मतलब है कि इसे एक प्रतिलिपि करने की अनुमति नहीं है, उदाहरण के लिए: 'कमांड x = getCommand();' जो भी वापस लौटाया गया था उसकी प्रतिलिपि बनाने के बजाय ''x' का निर्माण करेगा। – GManNickG
लंबी कहानी छोटी: आप सब ठीक कर रहे हैं! – Potatoswatter