संभव डुप्लिकेट:
Difference between const declarations in C++स्थिरांक कीवर्ड स्थिति
#include <iostream>
class Bar{};
void foo(const Bar x){} //l5
void foo(Bar x){} //l6
void foo(Bar const x){} //l7
////pointer functions
void foo(const Bar* x){} //l11
void foo(Bar* x){} //l12
void foo(Bar* const x){} //l13
संकलक उत्पादन: (लंबी कहानी कम l5
, l6
, l7
संघर्ष, लेकिन केवल l12
, l13
संघर्ष)
untitled.cpp:6:6: error: redefinition of ‘void foo(Bar)’
untitled.cpp:5:6: error: ‘void foo(Bar)’ previously defined here
untitled.cpp:7:6: error: redefinition of ‘void foo(Bar)’
untitled.cpp:5:6: error: ‘void foo(Bar)’ previously defined here
untitled.cpp:13:6: error: redefinition of ‘void foo(Bar*)’
untitled.cpp:12:6: error: ‘void foo(Bar*)’ previously defined here
क्या चल रहा है?
- घोषणाओं में से प्रत्येक का अर्थ क्या है
- क्यों वस्तु कार्यों के साथ सभी 3 घोषणाओं संघर्ष लेकिन केवल 2 सूचक कार्यों के साथ?
- कृपया विस्तार से बताएं कि संघर्ष
l12
औरl13
के बीच है, भले हीl12
const
कीवर्ड शामिल नहीं है - सच खेद है तुच्छ सवाल
अपनी पहली वाक्य पुन: इस विशेष संदर्भ में संकलक से कोई फर्क नहीं पड़ता। आम तौर पर, हालांकि, 'कॉन्स्ट' इसके पहले क्या संशोधित करता है, और इसे संशोधित करने के बाद 'const' व्यवस्थित रूप से डालने (यानी 'int const', और' const int 'नहीं) कोड को और अधिक पठनीय बनाता है। –