c++ - Why doesn't std::string provide implicit conversion to char*? -


std :: स्ट्रिंग प्रदान करता है जो:

सी प्राप्त करें स्ट्रिंग समतुल्य

स्ट्रिंग ऑब्जेक्ट के रूप में एक ही सामग्री के साथ अक्षरों (सी-स्ट्रिंग) का एक रिक्त-समाप्त अनुक्रम उत्पन्न करता है और एक सरणी के रूप में इसे वर्णों के सरणी के रूप में देता है।

A समाप्त वर्ण नल वर्ण स्वतः जोड़ता है।

लौटे सरणी वर्णों के इस अनुक्रम के लिए आवश्यक भंडारण स्थान के साथ एक आंतरिक स्थान को इंगित करता है और इसके निरर्थक निरर्थक रूप में, लेकिन इस सरणी में मान को संशोधित नहीं किया जाना चाहिए कार्यक्रम और केवल अपरिवर्तित रहने के लिए दी जाती है, जब तक कि अगले कॉल को स्ट्रिंग ऑब्जेक्ट के एक गैर-स्थिर सदस्य फ़ंक्शन तक नहीं।

क्यों वे केवल ऑपरेटर कॉन्सेरर को परिभाषित नहीं करते * () Const {return c_str ();} ?

सी ++ प्रोग्रामिंग भाषा से 20.3 .7 (जोर मेरा):

C-style स्ट्रिंग में रूपांतरण, ऑपरेटर const char * () के बजाय c_str () के द्वारा प्रदान किया जा सकता था। इसने ऐसे मामलों में आश्चर्य की कीमत पर एक अंतर्निहित रूपांतरण की सुविधा प्रदान की होगी जिसमें ऐसे रूपांतरण अनपेक्षित थे


Comments