zerowa inicjalizacja i statyczna inicjalizacja zmiennej statycznej zakresu lokalnego

Przeczytałem kilka postówInicjalizacja C ++ z Google, z których niektóre kierują mnie tutaj na StackOverflow. Pojęcia wybrane z tych postów są następujące:

Thezamówienie inicjalizacji C ++ to:Inicjalizacja zerowa;Inicjalizacja statyczna;Inicjalizacja dynamiczna.Obiekty statyczne (w tym zmienne) są pierwszeInicjalizacja zerowa, i wtedyInicjalizacja statyczna.

Mam kilka pytań dotyczącychinicjalizacja kwestia (klasa przechowywania problem może być również związany):

Obiekty globalne (zdefiniowane bezstatyczny słowo kluczowe) to także obiekty statyczne, prawda?Obiekty globalne są również inicjowaneobiekty statyczne w dwóch krokach, jak wyżej, prawda?Co to jestInicjalizacja statyczna? Czy odnosi się do inicjowania obiektów statycznych (zdefiniowanych za pomocąstatyczny słowo kluczowe)?Czytam również, że obiekty zdefiniowane w bloku (tj. W funkcji) za pomocąstatyczny słowo kluczowe jest inicjowane, gdy wątek wykonawczy po raz pierwszy wchodzi do bloku! To znaczy żelokalne obiekty statyczne nie są inicjowane wcześniejGłówny wykonanie funkcji. Oznacza to, że nie zostały zainicjowane jako dwa powyższe kroki, prawda?Dynamiczna inicjalizacja odnosi się do inicjalizacji obiektów utworzonych przezNowy operator, prawda? Może to dotyczyć inicjalizacjimyClass obj = myClass(100); lubmyClass obj = foo();

Mam zbyt wiele zapytań na temat inicjalizacji ispecyfikator klasy pamięci zagadnienia. Czytam dokument Standard C ++ 2003, ale nie mogę znaleźć jasnej logiki, ponieważ są one rozproszone w całym dokumencie.

Mam nadzieję, że dasz mi odpowiedźlogicznie wyjaśnia całą mapę specyfikatora klasy pamięci i inicjalizacji. Wszelkie odniesienia są mile widziane!

Kod, który może wyjaśnić moje pytanie:

class myClass{
public:
   int i;
   myClass(int j = 10): j(i){}
   // other declarations
};

myClass obj1;//global scope
static myClass obj2(2);//file scope
{   //local scope
   myClass obj3(3);
   static myClass obj4(4);
}

EDYTOWAĆ:
Jeśli uważasz, że moje pytanie jest dość nudne, możesz pomóc wyjaśnić swoje pomysły na podstawie powyższego kodu.

questionAnswers(2)

yourAnswerToTheQuestion