मैं Koenig द्वारा त्वरित C ++ पढ़ रहा हूं। वह लिखते हैं कि "नया विचार यह है कि हम एक स्ट्रिंग और एक स्ट्रिंग शाब्दिक को संक्षिप्त करने के लिए + का उपयोग कर सकते हैं - या, इस मामले के लिए, दो तार (लेकिन दो स्ट्रिंग साहित्यिक नहीं)।
ठीक है, यह समझ में आता है कि मुझे लगता है। अब इस पर रोशनी डालने के लिए दो अलग-अलग कवायदों का मतलब है।
क्या निम्नलिखित परिभाषाएँ मान्य हैं?
const string hello = "Hello";
const string message = hello + ",world" + "!";
अब, मैंने उपरोक्त को निष्पादित करने की कोशिश की और यह काम कर गया! इसलिए मैं खुश था।
फिर मैंने अगला अभ्यास करने की कोशिश की;
const string exclam = "!";
const string message = "Hello" + ",world" + exclam;
यह काम नहीं किया। अब मुझे यह समझ में आ गया है कि इस तथ्य से आपको कुछ लेना-देना नहीं है कि आप दो स्ट्रिंग शाब्दिकों को समाप्त नहीं कर सकते हैं, लेकिन मैं इस बात का अर्थ नहीं समझता कि मैं काम करने का पहला उदाहरण पाने में सफल रहा (नहीं ", दुनिया" और "!" "दो स्ट्रिंग शाब्दिक? क्या यह काम नहीं किया जाना चाहिए?) लेकिन दूसरा नहीं।
"Hello" + ", world!"जब आप कर सकते हैं तो कोई क्यों लिखेगा "Hello, world!"। हमेशा की तरह C ++ में एक कथित समस्या के लिए एक भयानक और सरल समाधान है। :-)
"Hello" ", world!"( +) के बिना लिखने की अधिक संभावना रखते हैं । सी ++ के बारे में कई शिकायतें हो सकती हैं, लेकिन मुझे नहीं लगता कि यह यहां से निपट रही है। यह बिल्कुल वैसा ही है जैसा आपने लिखा है 1 / 3 + 1.5, और शिकायत की है क्योंकि विभाजन अभिन्न विभाजन था। बेहतर या बदतर के लिए, यह ज्यादातर भाषाओं का काम है।
"hello" " world" == "hello world"उपयोगी है यदि आपको एक लंबी स्ट्रिंग लिखनी है और आप इसे अपनी खिड़की से बाहर नहीं जाना चाहते हैं या आप कुछ लाइन की लंबाई के दायरे में रहना चाहते हैं। या अगर एक तार एक मैक्रो में परिभाषित किया गया है।
const string message = "Hello" ",world" + exclam(जैसे पहले छोड़ देना+) काम ठीक ठीक करना।