बनाम यहाँ के बारे में स्थिर बनाम वैश्विक ढेर सारे प्रश्न हैं लेकिन मुझे लगता है मेरे सवाल पर कुछ भिन्न है।साझा फ़ाइलों में स्थैतिक चर: नाम स्थान वर्ग
मैं अगर वहाँ एक चर एक नाम स्थान में रखा साझा करने के लिए एक रास्ता है भर में एक वर्ग के कर सकते हैं में जिस तरह से स्थैतिक चर फ़ाइलें जानना चाहते हैं।
Foo::code = 1,2,3,4
bar::kode = 0,0,1,1
: - -
//Foo.cpp
int Foo::code = 0;
int Foo::times_two(int in_)
{
bar::kode++;
code++;
return 2*in_;
}
//main.cpp
int main()
{
cout << "Foo::code = " << Foo::code << endl;
for(int i=2; i < 6; i++)
{
cout << "2 x " << i << " = " << Foo::times_two(i) << endl;
cout << "Foo::code = " << Foo::code << endl;
cout << "bar::kode = " << bar::kode << endl;
if(i == 3)
{
bar::kode++;
}
}
}
सब कोड और कोडे के लिए इस झुकेंगे
//Foo.h
class Foo
{
public:
static int code;
static int times_two(int in_);
};
namespace bar
{
static int kode;
}
:
उदाहरण के लिए, मैं इस कोडित 0
एक बार फिर, वहाँ एक चर एक नाम स्थान भर में जिस तरह से एक वर्ग के कर सकते हैं में स्थैतिक चर फ़ाइलों में रखा साझा करने के लिए एक तरीका है? क्योंकि मैंने सोचा कि मैं अपने आप का उपयोग कर :: अंकन द्वारा वैश्विक चर confliciting से ढाल करने में सक्षम होगा, और सिर्फ पता चला मैं नहीं कर सका कारण मैं पूछ है। और किसी भी आत्म-अपमानजनक प्रोग्रामर की तरह, मेरा मानना है कि मैं इसे गलत कर रहा हूं।
'static' शायद सी में सबसे अतिभारित कीवर्ड ++ है। इसका मतलब उन दोनों संदर्भों में कुछ अलग है। – Flexo
... और इस विशेष मामले में, जो आप चाहते हैं उसके विपरीत। –