जिस तरह से आपने इसे लिखा था, यह कह रहा था कि "लौटा हुआ सूचक मूल्य स्थिर है"। लेकिन गैर-वर्ग के प्रकार के राजस्व संशोधित नहीं होते हैं (सी से विरासत में प्राप्त होते हैं), और इस प्रकार मानक कहते हैं कि गैर-वर्ग के प्रकार के राजस्व कभी भी योग्य नहीं होते हैं (दाएं सबसे अधिक कॉन्स्ट को आपके द्वारा निर्दिष्ट किए गए भी अनदेखा किया जाता है) क्योंकि कॉन्स थोड़े अनावश्यक होगा । एक यह लिखना नहीं करता है - उदाहरण:
int f();
int main() { f() = 0; } // error anyway!
// const redundant. returned expression still has type "int", even though the
// function-type of g remains "int const()" (potential confusion!)
int const g();
सूचना है कि "जी" के प्रकार के लिए, स्थिरांक महत्वपूर्ण है, लेकिन प्रकार int const
से उत्पन्न rvalue भाव के लिए स्थिरांक नजरअंदाज कर दिया है।
int const f();
int f() { } // different return type but same parameters
कोई रास्ता मेरे लिए जाना जाता है आप "जी" खुद (के प्रकार पर हो रही है और एक टेम्पलेट के लिए &f
गुजर से "स्थिरांक" दूसरे का निरीक्षण करने और अपने प्रकार अनुमान कर सकता है: तो अनुसरण करने में त्रुटि है , उदाहरण के लिए)। अंत में ध्यान दें कि "char const" और "const char" एक ही प्रकार का संकेत देते हैं। मैं आपको एक विचार के साथ व्यवस्थित करने और पूरे कोड में इसका उपयोग करने की सलाह देता हूं।
स्रोत
2009-10-22 13:31:40
क्या यह सिर्फ मुझे है या इस प्रश्न में स्पष्टता नहीं है? – jldupont
@ जीन-लो: मैं मानता हूं कि प्रश्न का शरीर कुछ हद तक अस्पष्ट है, लेकिन सवाल का शीर्षक अकसर इसका अर्थ बताता है। – sbi