ISO/IEC 14882, Programming language – C++ के व्यापक पढ़ने के बाद मुझे क्यों const
निम्नलिखितनिहित रूपांतरण के लिए क्यों आधार है?
#include <iostream>
class X {
public:
X(int value) {
printf("constructor initialized with %i",value);
}
}
void implicit_conversion_func(const X& value) {
//produces "constructor initialized with 99"
}
int main (int argc, char * const argv[]) {
implicit_conversion_func(99);
}
की तरह एक भी तर्क निर्माता के साथ एक उपयोगकर्ता-निर्धारित प्रकार के निहित रूपांतरण के लिए आवश्यक है के साथ खंड 4 लाइन शुरू अभी भी अनिश्चित हूँ 3
एक अभिव्यक्ति ई को पूरी तरह से एक प्रकार टी में परिवर्तित किया जा सकता है यदि केवल घोषणा अगर टी टी = ई; कुछ आविष्कारित अस्थायी परिवर्तनीय टी (8.5) के लिए अच्छी तरह से गठित है। कुछ भाषा संरचनाओं की आवश्यकता होती है कि एक अभिव्यक्ति को बूलियन मान में परिवर्तित किया जाए। इस तरह के संदर्भ में प्रकट होने वाली एक अभिव्यक्ति को संदर्भित रूप से बूल में परिवर्तित किया जाता है और अगर यह घोषणा केवल तभी होती है जब घोषणा बूल टी (ई); कुछ आविष्कारित अस्थायी परिवर्तनीय टी (8.5) के लिए अच्छी तरह से गठित है। या तो अंतर्निहित रूपांतरण का प्रभाव घोषणा और प्रारंभिक प्रदर्शन के रूप में और फिर रूपांतरण के परिणामस्वरूप अस्थायी चर का उपयोग करना जैसा ही है। परिणाम एक अंतराल है यदि टी एक lvalue संदर्भ प्रकार (8.3.2) है, और अन्यथा एक rvalue है। अभिव्यक्ति ई को एक लाभा के रूप में प्रयोग किया जाता है यदि केवल प्रारंभिकता इसे एक लाभा के रूप में उपयोग करती है।
है कि मैं एक कार्यक्रम एक स्थिरांक योग्य प्रकार टी, टी की एक वस्तु के डिफ़ॉल्ट प्रारंभ के लिए कहता है, तो 8.5 लाइन 6
में उपयोगकर्ता-निर्धारित प्रकार से संबंधित initializers पर अनुभाग पाया के बाद एक उपयोगकर्ता द्वारा प्रदान किए गए डिफ़ॉल्ट कन्स्ट्रक्टर के साथ एक वर्ग प्रकार होगा।
अंत में मैं 12.3 उपयोगकर्ता परिभाषित रूपांतरण के बारे में लाइन 2 जिसमें कहा गया है
उपयोगकर्ता-परिभाषित रूपांतरण लागू होते हैं केवल जहां वे स्पष्ट (10.2, 12.3.2) कर रहे हैं पर समाप्त हो गया।
कहने की जरूरत नहीं है, 10.2 और 12.3.2 ने मेरे प्रश्न का उत्तर नहीं दिया।
- कोई क्या प्रभाव
const
अंतर्निहित रूपांतरण पर है पर कुछ प्रकाश डाला सकता है? - क्या
const
का उपयोग 12.3 लाइन 2 प्रति "असंबद्ध" रूपांतरण करता है? const
किसी भी तरह से खंड 4 बनाम लालू बनाम रावलू को प्रभावित करता है?
क्या आपको बस सी ++ पसंद नहीं है? –