Re[3]: Не нужен страж?
От: crable США  
Дата: 03.06.08 11:12
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Were, Вы писали:


W>>Причем тут вообще линкер? В первом случае у тебя TArray.h только один раз включается в каждый .cpp файл, а во втором случае он включается два раза в TFlex.cpp и в main.cpp: первый раз сам по себе, второй через TFlex.h. Вот компилятор и начинает ругаться, что у тебя по 2 раза все определено.

W>>А TFlex.h без прагмы работает, так как он включается только по одному разу в TFlex.cpp и в main.cpp.
LVV>Дык при трансляции, естественно, никаких сообщений не должно выдаваться. Оно и не выдается.
LVV>А линкер вот причем. Определение класса Array попадает и в файл с определением методов TArray.cpp, и в файл с функцией main. То есть при сборке — две штуки должно обнаруживаться.

Так у тебя в TArray.h определение или объявление класса? Если только объявление, то линкер все-таки не причем, а если определение, то и в первом случае он будет ругаться. Может приведешь минимальный пример, демонстрирующий, что именно, по-твоему, разруливает ликер?

LVV>Обычно на повторное определение линкер выдает сообщение. А здесь — не выдает.

W>>И не надейся, начинай каждый хидер с #pragma once )
LVV>Предпочитаю стража.
The last good thing written in C was Franz Schubert's Symphony No. 9.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.