Описание тега initialization-order

0 ответов

Инициализация сопутствующего объекта после внутренних объектов

Допустим, я хочу создать закрытый класс, заполненный некоторыми объектами. Затем я хочу создать список всех таких объектов, поэтому я создаю список в объекте-компаньоне: fun main() { println(Color.Blue) println(Color.allColors) } sealed class Color …
01 мар '19 в 08:48
4 ответа

Это хорошая идея использовать разделы инициализации для регистрации модуля?

Я ищу хорошее решение для децентрализованной регистрации модуля. Я не хочу, чтобы один модуль использовал все модульные модули проекта, но я бы хотел, чтобы модульные модули регистрировались сами. Единственное решение, о котором я могу думать, - это…
2 ответа

Статический порядок инициализации в классе heirarchy

Недавно я стал мучительно осознавать статический порядок инициализации Fiasco. Мне интересно, хотя правило, что "порядок инициализации не определен в единицах перевода" все еще сохраняется для статических членов родительского класса, которые необход…
3 ответа

Как выполнить статическую деинициализацию, если деструктор имеет побочные эффекты и доступ к объекту осуществляется из деструктора другого статического объекта?

Существует простой и хорошо известный шаблон, позволяющий избежать статического сбоя при инициализации, описанный в разделе 10.13 C++ FAQ Lite. В этом стандартном шаблоне есть компромисс, заключающийся в том, что либо построенный объект никогда не б…
2 ответа

Использование бесплатного "char const*" во время статической инициализации

Порядок инициализации свободных объектов не определен в C++. Но как насчет следующего? namespace foo { char const* str = "hey"; struct A { A() { cout << str; } } obj; } Это все еще неопределенное поведение, или есть специальное положение для у…
26 апр '09 в 11:39
0 ответов

Один из моих локальных связанных сервисов зависит от другого. Как я могу убедиться, что он не используется, пока его зависимость не будет готова?

Я реализовал части своего приложения для Android в виде двух локально связанных служб, один из которых зависит от другого. (Я использую только bindService() с ними; никогда startService().) Однако, когда я связываю сервис, который имеет зависимость,…
1 ответ

Перекрестные ссылки и порядок инициализации объекта

У меня есть следующий код: abstract class SuperClass (cs: Seq[C]) { def init {} } object A extends SuperClass(Seq(B, C)) object B extends SuperClass(Seq(A, D)) object C extends SuperClass(Seq(A, B)) object D extends SuperClass(Seq(C, B, A)) object E…
5 ответов

C++: Гарантии порядка построения и инициализации

У меня есть некоторые сомнения в отношении порядка построения и порядка инициализации в C++. Например, следующий код имеет четыре класса X, Y, Z а также W, Основная функция создает объект class X, который содержит объект class Yи происходит от class…
25 мар '10 в 15:50
2 ответа

Неоднозначность в порядке инициализации статических переменных

Во время моего исследования лучшего способа создания Singleton в C# я наткнулся на следующую статью, где есть краткое упоминание о том, что в C++ "Спецификация C++ оставила некоторую неоднозначность в отношении порядка инициализации статических пере…
09 июл '12 в 09:50
1 ответ

В C++, учитывая, что const float для всего пространства имен зависит от глобального const float, гарантируется ли их порядок инициализации?

Если есть пара файлов.h/.cpp с чем-то вроде, соответственно, extern const float ge; а также const float ge = 2.2f; в них и другой файл.cpp с чем-то вроде namespace { const float upperLimit = 2.0f * ge; } // namespace bool foo(float a) { return a &lt…
08 ноя '18 в 08:04
6 ответов

C++ статический порядок инициализации

Когда я использую статические переменные в C++, мне часто приходится инициализировать одну переменную, передавая другую ее конструктору. Другими словами, я хочу создать статические экземпляры, которые зависят друг от друга. В пределах одного файла.c…
2 ответа

Последовательности вызовов функций в списке инициализатора конструктора?

Рассматривать: int f () { static int i = 0; return i++; } struct Test { int a, b; Test () : a(f()), b(f()) {} }; Test t; я знаю это a инициализируется раньше b в связи с порядком их объявления в struct, Я также знаю, что два звонка f в g(f(), f()) н…
2 ответа

Как я могу хранить в производном классе информацию, полученную при инициализации базового класса?

У меня возникла ситуация, когда в качестве побочного эффекта при получении данных для инициализации базового класса производный класс вычисляет часть информации, которая впоследствии должна быть доступна через его интерфейс. Следующее дает представл…
25 фев '14 в 13:52
1 ответ

Стандарт C++: почему некоторые "заказы" определены, а некоторые нет?

Имея класс, порядок инициализации его членов строго определен в конструкторе (возможно, чтобы разрешить зависимости между членами, как в этом вопросе - но я думаю, что это больше проблема проектирования, я могу представить циклические зависимости). …
1 ответ

Упорядочение std::atexit при вызове из конструктора глобального объекта

cppreference говорит о std::atexit: Функции могут вызываться одновременно с уничтожением объектов со статической продолжительностью хранения и друг с другом, сохраняя гарантию того, что если последовательность A была упорядочена до регистрации B, то…
2 ответа

Идиома Именованного Параметра с использованием указателя на закрытый метод класса

Я застрял с ошибкой компиляции C++, когда делал что-то, что, вероятно, не совсем "обычное". Чтобы упростить задачу, я просто переписал механизм, который пытаюсь использовать, чтобы его было легче читать, и проверил, что у меня возникла та же проблем…
4 ответа

Это самоинициализация действительна?

У меня есть этот вопрос, о котором я думал ранее, но решил, что ответить на него нетривиально int x = x + 1; int main() { return x; } Мой вопрос заключается в том, определено ли поведение программы или нет, если оно действительно. Если это определен…
22 июл '10 в 12:57
2 ответа

Порядок инициализации управления Fiasco

Рассмотрим следующий код: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <StackPanel> <Slider ValueChanged="slider_ValueChanged/> <TextBox x:Name…
4 ответа

Проблемы с порядком инициализации

Учитывая пример кода: class B { //Some contents. }; class C { private: B& b; }; class A { private: B b; C c; }; Класс C имеет ссылку на a b, поэтому его необходимо инициализировать. Класс A содержит экземпляр B и экземпляр C. Мой вопрос: могу ли…
10 янв '12 в 18:57
1 ответ

Может ли порядок инициализации полей класса в VB.NET зависеть от ссылок на другие поля?

Возьмите этот пример кода: Class Foo ReadOnly name As String Public Sub New(name As String, dependentUpon As Foo) Me.name = name Console.Write("{0} created. ", name) Console.WriteLine("Dependent upon {0}.", If(dependentUpon IsNot Nothing, dependentU…
19 июн '11 в 16:51