c++ - What kind of of object does this function return? -


कल्पना करो कि आपके पास इस तरह की स्थिति है:

  वर्ग वर्गनाम {...} ClassName func () {className cl; ... वापसी सीएल; } Int main () {... func (); }  

फ़ंक्शन func () वापस जब आप इसे प्रोग्राम के शरीर में कहते हैं? ऑब्जेक्ट cl की एक अस्थायी प्रतिलिपि? मुझे यह समझ में नहीं आता है, क्योंकि फ़ंक्शन func () के निकाय में आप पता & amp; cl प्राप्त कर सकते हैं, लेकिन अगर आप कॉल करने का प्रयास करते हैं तो आपको एक त्रुटि मिलती है फ़ंक्शन के अंदर और (func ()) मुख्य ()

फ़ंक्शन के अंदर आप किसी तथाकथित लार्वेल के साथ काम कर रहे हैं, जो किसी ऑब्जेक्ट के साथ बात कर रहे हैं, क्योंकि पता निर्दिष्ट है क्योंकि वस्तु को स्पष्ट रूप से परिभाषित किया गया है। फ़ंक्शन का रिटर्न वैल्यू एक अस्थायी ऑब्जेक्ट है (यह एक तथाकथित रैवल्यू है) इसका पता ज्ञात नहीं है हम नहीं जानते कि कंपाइलर कहां ऑब्जेक्ट को परिभाषित करता है। इसलिए हम ऑपरेटर और amp; एक अस्थायी वस्तु के लिए।

एक और समान उदाहरण

  struct A {int x; }; ए एफ () {रिटर्न ए (); } Int main () {f ()। X = 10; // यहां कम्पाइलर एक त्रुटि जारी करेगा}  

हालांकि इस कोड को संकलित नहीं किया जाएगा उदाहरण के तौर पर एमएस वीसी ++ 2010 एक बग या इसकी भाषा एक्सटेंशन के कारण इसे संकलित करेगा। P>


Comments

Popular posts from this blog

c# - Reactive Extensions ControlScheduler -

scala - Play Framework - how to bind form to a session field -

Firefox reacting to JQuery setTimeout that doesn't apply -