स्थैतिक खोजशब्द की सीमा के बारे में C++ भाषा की परिभाषा क्या कहती है?
syntax static (2)
C ++ 17 मानक (10 घोषणाएँ) के अनुसार
2 फॉर्म का एक सरल-घोषणा या नोडेकल्प-फ़ंक्शन-घोषणा
attribute-specifier-seqopt decl-specifier-seqopt init-declarator-listopt ;
और (10.1 विनिर्देशक):
1 एक घोषणा में इस्तेमाल किया जा सकता है कि विनिर्देशक हैं
decl-specifier:
storage-class-specifier
...
तो इस घोषणा में
static int s_One, s_Two;
decl-specifier-seq
में दो
decl-specifiers
,
static
(स्टोरेज क्लास स्पेसियर) और
int
।
इस प्रकार भंडारण वर्ग विनिर्देशक
static
s_One
init-declarator-list
s_One
और
s_Two
दोनों चर का वर्णन करता है।
C ++ में, यदि मेरे पास एक वर्ग है:
class Example {
static int s_One, s_Two;
...
};
क्या भाषा स्पष्ट रूप से परिभाषित करती है कि
s_Two
भी स्थिर है?
दूसरे शब्दों में, क्या
static
खोजशब्द सीमा हर जगह
int
जाती है, या क्या यह
*
जैसा हो सकता है और केवल एक चर पर लागू होता है?
हां, यह उस घोषणा में हर नाम पर लागू होता है:
[dcl.stc]/1:
[..] अधिकांश एक भंडारण-वर्ग-निर्दिष्टकर्ता किसी दिए गए घोषित -निर्दिष्ट-सेक में दिखाई देगा [..] प्रत्येक इनवेटर-घोषणाकर्ता द्वारा घोषित नाम पर भंडारण-वर्ग-विनिर्देश लागू होता है सूची में [..]