эта переменная обьявлена в main.cpp, и там же включен этот h? не получится конфликтов?
нужно
почему не в сср?
в этом нет никакого смысла
Ну почему же? Если эта переменная только в двух .cpp используется, можно и так.
ну это сравнимо с тем что ты вместо того чтоб подключать объявление класса, его заново напишешь...
Нет. То что ты предлагаешь сделать -- определение класса. А extern -- объявление .
не да а нет. ОПРЕДЕЛЕНИЕ не может быть другим и повторяться. Объявление -- может повторяться.
тогда как ты в разные cpp подключаешь заголовочные файлы с объявлением класса?
Объявления я не включаю, объявляю по месту.
file.h #pragma once struct A{}; file1.cpp #include "file.h" file2.cpp #include "file.h"
это forward declaration
Ну..... да...
видишь противоречие в словах?
struct A {}; является объявлением и определением типа
Вообще, кажется все определения в С++ и С являются также и объявлениями.
extern void foo(); является определением?)
ну а, например, out определение member функции ?
И определения не всегда являются объявлениями, но доказывать я не буду
Я ж написал, что наоборот, всегда являются.
определение всегда является объявлением. поэтому лучше доказать, иначе нарушение правил "вброс без доказательств" :)
Ладно, я потом поищу где-то в стандарте...
Я ж написал -- почти... Да, я не до конца уверен, вот, есть какие-то случаи, когда определение не является объявлением.
Владимирова надо смотреть :3
Я смотрел, но он же не сказал что является?
Обсуждают сегодня