Конфликт заголовка C ++ - PullRequest
       9

Конфликт заголовка C ++

0 голосов
/ 08 июля 2011

Я работаю над программой симуляции дорожного движения для школы. Мой класс Simulation читает список автомобилей из файла XML, поэтому я включил Vehicle.h в свой класс Simulation. Я хочу, чтобы мой автомобиль мог удерживать указатель на объект моделирования, чтобы он мог использовать функцию searchRoads моделирования. Поэтому я включил Simulation.h в свой Vehicle класс.

Когда я сделал это, я получил более 100 ошибок при попытке компиляции. Я немного сомневаюсь в своем C ++, поэтому если я совершил какой-то кардинальный грех, пожалуйста, дайте мне знать, как это исправить.

Ответы [ 3 ]

3 голосов
/ 08 июля 2011

Либо, вам не хватает защиты включения, что приводит к многократному включению заголовочных файлов

Или

Вы создаете Круговую зависимость изваши заголовки.Вы должны скорее использовать Форвардная декларация .

Разместите детали своего кода для более подробного ответа.

0 голосов
/ 09 июля 2011

Поскольку операционные системы имеют возможность обрабатывать длинные имена файлов, я начал именовать мои включаемые файлы, чтобы они отражали положение кода в пространстве имен:

namespace network {
 class connection { bool send( char* stuff ); }
}

попадет в файл "сеть".connection.h ".

Помогает упорядочить вещи и снижает вероятность конфликта имен файлов.

0 голосов
/ 08 июля 2011

Вы узнаете кое-что о включении охранников: http://en.wikipedia.org/wiki/Include_guard Надеюсь, это поможет.

...