तकनीकी तौर पर हाँ, यह वैध है।
तारों में स्थिर भंडारण durataion है।
लेकिन वह पूरी कहानी नहीं है।
इन सी-तार कर रहे हैं। सी-पुस्तकालयों और funcctions में सम्मेलन गतिशील रूप से आवंटित स्ट्रिंग को वापस करने के लिए है जिसे मुक्त किया जाना चाहिए। यानी एक सूचक वापस लौटाया गया था, जो कॉलर को वापस स्वामित्व पास कर रहा था (जैसा कि सी में भी हम अपवाद हैं)।
आप इन परंपराओं का पालन नहीं करते हैं तो आपको लगता है कि इस सम्मेलन उम्मीद करेंगे अनुभवी सी डेवलपर्स के एक बहुत भ्रमित करेगा। यदि आप इस मानक अपेक्षा का पालन नहीं करते हैं तो इसे कोड में अच्छी तरह से प्रलेखित किया जाना चाहिए।
इसके अलावा इस C++ (अपने टैग के अनुसार)। इसलिए यह एक std :: स्ट्रिंग को वापस करने के लिए अधिक पारंपरिक है। इसका कारण यह है कि पॉइंटर्स के माध्यम से स्वामित्व को पारित करना केवल निहित है (और इससे सी कोड में बहुत सी त्रुटियों का कारण बनता है, उपर्युक्त उम्मीद टूट गई थी लेकिन दस्तावेज किया गया था, दुर्भाग्यवश दस्तावेज कोड को उपयोगकर्ता के कोड द्वारा कभी नहीं पढ़ा गया था)। एक std :: स्ट्रिंग का उपयोग करके आप किसी ऑब्जेक्ट को पास कर रहे हैं और उनका अब स्वामित्व का कोई प्रश्न नहीं है (परिणाम एक मूल्य के रूप में वापस किया गया है और इस प्रकार आपका), लेकिन क्योंकि यह एक वस्तु है क्योंकि संसाधन आवंटन के साथ कोई प्रश्न या समस्या नहीं है ।
आप दक्षता के बारे में चिंतित हैं, तो मुझे लगता है कि एक झूठी चिंता का विषय है।
std::cout << std::boolalpha << false << std::endl;
std::cout << std::boolalpha << true << std::endl;
स्रोत
2009-10-19 18:34:20
हाँ:
आप धाराओं के माध्यम से प्रिंट करने के लिए इस चाहते हैं वहाँ पहले से ही है कि करने के लिए एक मानक सम्मेलन है। लेकिन सी ++ में आपको अभी भी std :: स्ट्रिंग पसंद करना चाहिए। निचे देखो। –