Adam Pierce'den kodu tekrar test etmeye çalışıyorum ve iki durum daha ekledim: sınıfta statik değişken ve POD türü. Derleyicim Windows işletim sisteminde (MinGW-32) g ++ 4.8.1. Sonuç, sınıftaki statik değişkenin genel değişkenle aynı şekilde ele alınmasıdır. Yapıcısı, ana işleve girmeden önce çağrılacaktır.
(1) : Doğru durum "aynı çeviri biriminden herhangi bir işlev çağrılmadan önce" olmalıdır.Bununla birlikte, aşağıdaki örnekte olduğu gibi basit için, o zaman ana işlevdir.
<iostream> dahil
#include < string>
using namespace std;
class test
{
public:
test(const char *name)
: _name(name)
{
cout << _name << " created" << endl;
}
~test()
{
cout << _name << " destroyed" << endl;
}
string _name;
static test t;
};
test test::t("static in class");
test t("global variable");
void f()
{
static test t("static variable");
static int num = 10 ;
test t2("Local variable");
cout << "Function executed" << endl;
}
int main()
{
test t("local to main");
cout << "Program start" << endl;
f();
cout << "Program end" << endl;
return 0;
}
sonuç:
static in class created
global variable created
local to main created
Program start
static variable created
Local variable created
Function executed
Local variable destroyed
Program end
local to main destroyed
static variable destroyed
global variable destroyed
static in class destroyed
Linux ortamında test edilen var mı?