OK. И нашел решение этой проблемы: на SetInitializers () просто поставьте true в скобках ... Черт ... Так просто ... 2 дня ...
Необходимо ограничить каждый файл от того, чтобы быть включенным только однажды. Можно сделать это 2 способами.
1) Наверху Ваших помещенных заголовочных файлов:
#pragma once
Или 2) если Ваш компилятор не поддерживает это, поместите в вершину/конец своих заголовочных файлов:
#ifndef _MYFILE_H_
#define _MYFILE_H_
...
#endif
Замените MYFILE названием Вашего файла и замените... содержанием заголовочного файла.
Ошибка означает, что существует символ, который был определен в одном месте, и альтернативное определение было сделано в другом месте.
Это может произойти если в случаях как:
В этом последнем случае будет несоответствие между реальной функцией и "неявным объявлением", которое принимает компилятор, когда это не имеет прототипа для использования.
Этими ситуациями можно избежать:
static
, или уникальный, если они используются между объектными файлами),extern
операторы в исходных файлах для объявления прототипов. Лучше использовать прототип от соответствующего заголовочного файла.static
функции, или в заголовочном файле, если они должны использоваться другими объектными файлами.Вы, вероятно, включаете заголовочный файл дважды. Удостоверьтесь, что Ваши заголовочные файлы окружаются #ifndef
операторы.
http://www.fredosaurus.com/notes-cpp/preprocessor/ifdef.html