C ve C++ 'da tüm statik değişkenler varsayılan olarak Sıfırla olarak başlatılır.Neden statik sınıf değişkenlerini C++ ile başlatmalıyım?
Bu, statik sınıf veri üyeleri için geçerli değildir. Neden?
sınıfı kapsamına de#include <iostream>
using namespace std;
int var;
class MyClass
{
public:
static int classVar;
};
int MyClass::classVar = 0; // Why I have to init it here?
int main(void)
{
cout << ::var << endl; // this is initalized to ZERO by default
static int var;
cout << var << endl; // and this also is initalized to Zero
cout << MyClass::classVar << endl;
return 0;
}
** var ** 'nın 0 olarak başlatıldığından emin değilsiniz. Muhtemel, olası, ancak emin değil. –
@AlessandroPezzato: Gerçekte, dinamik başlatma işlemine başlamadan önce, tüm global değişkenler için belleği sıfırlama konusunda açık bir anlam var ... bir değişmez değerin etkilendiği bu yerleşiklerden ayrı olarak, doğrudan etkileyebileceğimi düşünüyorum. gözetim altında olduğu için). –