128 |
С т р а н и ц а
Если вы примените точно такую же установку и попытаетесь компилировать, и
запустить ваш проект, вы увидите ошибку:
‘Mammal’ : ‘class’ type redefinition
(‘Mammal’ : переопределение типа ‘class’); как показано на следующем скриншоте:
Что означает эта ошибка? То, что Mammal.h дважды внесён в ваш проект. Один раз
в Source.cpp и затем, ещё раз в Dog.h. Это означает, что фактически две версии
класса Mammal были добавлены в компилируемый код и С++ не знает, какую
версию использовать.
Есть два
способа решить этот вопрос, но наилегчайший (и
тот который применяется
Unreal Engine) это макрос #pragma once, как показано на следующем скриншоте:
Мы пишем #pragma once вверху каждого заголовочного файла. Таким образом,
когда Mammal.h включается второй раз, компилятор не копирует и не вставляет
его содержимое снова, поскольку он уже был включен до этого и его содержимое
уже на самом деле в компилируемой группе файлов.
Сделайте то же самое для Cat.h и Human.h. Затем включите их в ваш файл
Source.cpp, где постоянно находится ваша функция main().
129 |
С т р а н и ц а
Все классы включены
Теперь, когда мы включили все классы в ваш проект, код должен компилироваться
и запускаться.
Достарыңызбен бөлісу: