31
GB
What is the output: class A{public: A(){cout<<1;} A(const A&){cout<<2;} ~A(){cout<<3;}}; A f(A a){return a;} A b; f(b);
IN
आउटपुट क्या है: क्लास ए {पब्लिक: ए() {काउट
A
1 2 3 2 3 3 (numbers)
1 2 3 2 3 3 (संख्याएँ)
B
123233
123233
C
Depends on optimization
अनुकूलन पर निर्भर करता है
D
12233
12233
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English)
With NRVO and copy elision, actual output depends on optimization level. Without optimization: construct b(1), copy to a(2), copy return(2), destroy return(3), destroy a(3), eventually destroy b(3). Output varies with optimization.
व्याख्या (हिन्दी)
एनआरवीओ और कॉपी एलिज़न के साथ, वास्तविक आउटपुट अनुकूलन स्तर पर निर्भर करता है। अनुकूलन के बिना: b(1) बनाएं, a(2) में कॉपी करें, रिटर्न कॉपी करें(2), रिटर्न नष्ट करें(3), a(3) नष्ट करें, अंततः b(3) नष्ट करें। आउटपुट अनुकूलन के साथ बदलता रहता है।