स्थैतिक खोजशब्द की सीमा के बारे में 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: [..] अधिकांश एक भंडारण-वर्ग-निर्दिष्टकर्ता किसी दिए गए घोषित -निर्दिष्ट-सेक में दिखाई देगा [..] प्रत्येक इनवेटर-घोषणाकर्ता द्वारा घोषित नाम पर भंडारण-वर्ग-विनिर्देश लागू होता है सूची में [..]





grammar