Здравствуйте, Were, Вы писали:
W>Причем тут вообще линкер? В первом случае у тебя TArray.h только один раз включается в каждый .cpp файл, а во втором случае он включается два раза в TFlex.cpp и в main.cpp: первый раз сам по себе, второй через TFlex.h. Вот компилятор и начинает ругаться, что у тебя по 2 раза все определено. W>А TFlex.h без прагмы работает, так как он включается только по одному разу в TFlex.cpp и в main.cpp.
Дык при трансляции, естественно, никаких сообщений не должно выдаваться. Оно и не выдается.
А линкер вот причем. Определение класса Array попадает и в файл с определением методов TArray.cpp, и в файл с функцией main. То есть при сборке — две штуки должно обнаруживаться.
Обычно на повторное определение линкер выдает сообщение. А здесь — не выдает. W>И не надейся, начинай каждый хидер с #pragma once )
Предпочитаю стража.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!