2009-10-27 1 views

ответ

2

Типичная реализация библиотеки будет включать в себя собственный заголовок, поэтому это не особо особый случай.

Если заголовок объявляет такие вещи, как глобальные статические переменные, вы, конечно, не можете определить их более одного раза. Как правило, библиотека будет содержать определения для данных, которые она объявляет (или, лучше, не объявлять статические глобальные данные), поэтому ваш код, который использует библиотеку, не должен дублировать их.

+0

Если общий заголовок объявляет постоянные переменные, такие как «const int A = 100;», существуют ли конфликты? – 2009-10-27 12:54:40

+0

Для int, это должно работать нормально. – unwind

+0

Как глобальное определение нестатической переменной типа «int A?»? – 2009-10-27 13:04:10

1

Я не думаю, что будет происходить, если некоторые объекты не были конкретизируется в заголовочном файле:

т.е.

CMyStringType superMansName("Clark Kent"); 

приведет к ошибке связи, где объект существует только в статических библиотеки и вашего кода.

Смежные вопросы