Здравствуйте, 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 попадает в оба .cpp