1 /*
2 * Кілька принципів
3 * 1. Статичні змінні елементів
4 * 1. Статичні змінні членів — це змінні класу, і всі об'єкти ділять однаковий простір пам'яті
5 * 2. Оголошення та визначення статичних змінних елементів виконується лише один раз при першому завантаженні класу
6 * 3. При першому завантаженні класу спочатку присвоїть початкові значення всім статичним змінним членів відповідно до типу, а потім прикріпіть правильні значення тим, що мають rvalues
7 * 2. Статичний початковий блок
8 * 1. Статичні блоки ініціалізації виконуються лише один раз при першому завантаженні класу
9 * ······ Кілька статичних змінних елементів і швидкий порядок виникнення статичних посилань виконуються послідовно······
10 * 3. Динамічні змінні елементів
11 * 1. Визначення динамічних змінних елементів виконується перед конструктором щоразу при створенні об'єкта
12 * 4. Блок динамічної ініціалізації
13*1. Блок динамічної ініціалізації виконується перед конструктором щоразу, коли об'єкт створюється
14 * ······ Декілька динамічних змінних елементів і блоків динамічної ініціалізації виконуються у порядку їх появи······
15 * Резюме: Загалом, коли клас завантажується вперше, він виконується у наступному порядку, без успадкування
16 * 1. Виконати визначення статичної змінної елемента та статичний блок ініціалізації у порядку появи
17 * 2. Виконати динамічне визначення змінної елемента та блок динамічної ініціалізації у порядку виникнення
18 * 3. Виконати конструктора
19 * При повторному інстанціонуванні об'єкта можна виконати лише кроки 2 і 3
20 *
21 * ············ Змінні члена, визначення та блоки ініціалізації виконуються перед конструктором·········
22 * 5. Коли йдеться про спадкування, воно здійснюється у наступному порядку
23 * 1. Виконати визначення статичної змінної елемента та статичний блок ініціалізації батьківського класу, а також виконувати визначення статичної змінної елемента та блок статичної ініціалізації підкласу
24 * 2. Виконати нестатичне визначення змінної елемента та блок динамічної ініціалізації батьківського класу, а також виконати метод побудови батьківського класу
25 * 3. Виконати визначення нестатичних членних змінних підкласів, динамічно ініціалізувати блоки та виконати метод побудови підкласів
26 * Також: якщо метод, використаний у методі побудови батьківського класу, був переписаний підкласом, то метод переписування підкласу використовується при виклику конструктора батьківського класу при побудові об'єкта підкласу
|