LINUX.ORG.RU

c++ статическая константа

 


0

2

Добрый вечер, подскажите, почему вот такая инициализация статической константы проходит

class A {
static const int some_size = 4;
}

а вот такая вот нет

class B {
static const QString someStr = "Ololo";
}



Последнее исправление: da17 (всего исправлений: 1)
Ответ на: комментарий от cloun1902

Порядок инициализации неглобальных (те что блок скоуп) прописан явно - будут проинициализированы однажды и потокобезопасно, когда какой-нибудь поток зайдет в этот скоуп. Деинициализация в обратном порядке. А глобальные хз как, как карта ляжет (глобальные переменные с разных модулей, в одном модуле - в порядке definitions).

pavlick ★★
()
Последнее исправление: pavlick (всего исправлений: 2)
Ответ на: комментарий от pavlick

ммм, попробую вежливо, боюсь Сер, ваш ответ содержит неокторые технические неточности, в частности вы путаете Области видимости и Срок жизни перменных, переменные которые инициализируются однажды это как раз Static, но статик не определяет Область видимости, т.е. не делает перменную Глобальной, коментировать про скопы потоков я пожалуй не стану

sparks ★★★★
()
Ответ на: комментарий от pavlick

Вот оно что. Я думал ты сейчас раскажешь про, например, дублирование статиков в классах на dlopen-е. А ты просто нужный порядок зафорсить не осилил.

А глобальные хз как, как карта ляжет.

За букварь. https://en.cppreference.com/w/cpp/io/ios_base/Init

cloun1902
()
Ответ на: комментарий от cloun1902

И? При чем здесь std::ios_base::Init? Ты хочешь сказать, что подинклудив iostream, я управляю порядком инициализации между main и какой-нибудь libm.a?

pavlick ★★
()
Ответ на: комментарий от pavlick

И … это пример, который множит на ноль твою потугу

А глобальные хз как, как карта ляжет (глобальные переменные с разных модулей, в одном модуле - в порядке definitions)

#include <iostream>

// здесь std::cout и ko проинициализированно инфа сотка
cloun1902
()
Ответ на: комментарий от cloun1902

При чем здесь cout? Ладно, с тобой всё ясно, в черный список. Может я бы попытался тебе что-то объяснить если бы не твоё хамское поведение.

pavlick ★★
()
Ответ на: комментарий от pavlick

А с тобой весело, ты не злись, мне просто работать не оч хочется сегодя и я сюда прокрастинирую, твой пример с глобальным скопом, вообще ничего не показывает, ты хочешь сказать что класс s стал «внезапно» доступен из всех единиц трасляции?

sparks ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.