|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Легаси проект. Переменные с такими ошибками расположены в cpp QString abc; MyFor::MyForm(xxxxxxx: QMainWindow( Как правильно сейчас пишут? Где размещают переменные? В заголовочном файле? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 10:22 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Petro123с такими ошибками Что за компилятор выдаёт такую ошибку? Никогда её не видел. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 12:31 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Qt Creator ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 12:42 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Перетащил в заголовок класса h в private поле. Вроде работает. Непонимаю, зачем переменную с областью видимости cpp писать в cpp.))) Когда там несколько классов что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 12:48 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
В cpp #define SSS "константа %1" тоже правильнее перенести в заголовочный класса? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 12:53 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Petro123Непонимаю, зачем переменную с областью видимости cpp писать в cpp.))) Если у переменной нет "static" спереди, то её область видимости гораздо шире, чем .cpp в котором она объявлена. Но обычно компилятор на такое не ругается. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 13:04 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Шире до куда? На все приложение? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 13:12 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Это варнинг. И возможно в последних С++ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 13:15 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 13:17 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Dima T, Запутано))) Куда define писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 13:24 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Petro123Dima T, Запутано))) Куда define писать? Если надо только в пределах cpp, то в cpp. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 13:45 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли у переменной нет "static" спереди, то её область видимости гораздо шире, чем .cpp в котором она объявлена. Но обычно компилятор на такое не ругается. Это clang такое выдает. Типа, или сделай static (или анонимный неймспейс) или сделай хедер с декларациями. А иначе ему похоже на незапланированное расширение области видимости. В принципе разумно. Например может быть нарушение ODR если в двух файлах будут переменные с одним именем но разным типом - тогда привет отладка случайных крэшей )) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 14:17 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Petro123Перетащил в заголовок класса h в private поле. Вроде работает. Непонимаю, зачем переменную с областью видимости cpp писать в cpp.))) Когда там несколько классов что ли? ну, в х файле надо объявлять, если он включается не в один цпп, иначе пофиг. Кроме того, по второму вопросу: авторВ cpp #define SSS "константа %1" тоже правильнее перенести в заголовочный класса? для красоты - да, но см. пред. ответ и лучше проверить была ли определена #ifndef SSS #define SSS "константа %1" #endif ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 16:05 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Anatoly Moskovskyпривет отладка случайных крэшей Это как? Компилятор же должен сформировать корректное обращение к той переменной, которая видна в текущем модуле и выпасть с ошибкой если две переменные ему видны сразу (по крайней мере с -Wshadow). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 16:13 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Ролг Хупин, Спс. Прочитал, что define строковых констант лучше переделать на переменные... Литералы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 08:34 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
То есть имеем 15 строк для messageBox в define. Правильнее их в Пространство имен message и в const. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 08:53 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЭто как? Компилятор же должен сформировать корректное обращение к той переменной, которая видна в текущем модуле и выпасть с ошибкой если две переменные ему видны сразу (по крайней мере с -Wshadow). Ну, это я погорячился. Будет ошибка связывания просто )) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 11:17 |
|
No previous extern declaration for non-static variable 'abc
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли у переменной нет "static" спереди, то её область видимости гораздо шире, чем .cpp в котором она объявлена.Не путай область видимости и linkage. Область видимости шире translation unit (~~ .cpp-файла) не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 16:55 |
|
|
start [/forum/topic.php?fid=57&msg=39813377&tid=2017616]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 140ms |
0 / 0 |