Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как избавиться от конфликта имен?

446
05 ноября 2012 года
Meander
487 / / 04.09.2011
Всем привет!

Делал оболочку для часто используемых функций OpenGL. Сначала, все директивы, объявления и реализации находились в файле реализации формы и все работало. Затем, перенес этот код в отдельный модуль и подключил его к файлу реализации формы, в результате, проект перестал собираться. Компилятор сообщает о повторных объявлениях в хэдерах GL. Знаю, что в таких случаях определенным образом формируют директивы препроцессора, но как конкретно, не знаю. Поделитесь ссылками на примеры со всеми возможными способами обращения с директивами или укажите универсальный прием решения в моем случае.
446
05 ноября 2012 года
Meander
487 / / 04.09.2011
Примерно так это выглядело:

Код:
//  БЫЛО
//-------------------------------------
//------------  Unit1.cpp  ------------

#include <gl.h>
#include <glu.h>

//  Объявление класса инкапсулирующего
//  функции OpenGL
//  ...

//  Реализация класса инкапсулирующего
//  функции OpenGL
//  ...

//  СТАЛО
//-------------------------------------
//------------  Unit2.h  --------------

#ifndef Unit2H
#define Unit2H

#include <gl.h>
#include <glu.h>

//  Объявление класса инкапсулирующего
//  функции OpenGL
//  ...

#endif

//------------  Unit2.cpp  ------------

#include "Unit2.h"

//  Реализация класса инкапсулирующего
//  функции OpenGL
//  ...

//------------  Unit1.cpp  ------------

#include "Unit2.h"
247
06 ноября 2012 года
wanja
1.2K / / 03.02.2003
Вообще-то, обычно cpp с реализацией инклюдится в заголовочный файл.
446
06 ноября 2012 года
Meander
487 / / 04.09.2011
Да и так тоже делал. Может проект не пересобрался?
1
06 ноября 2012 года
kot_
7.3K / / 20.01.2000
Если я понял правильно проблему - то тебе нужно открыть для себя пространства имен в С++ и именно его использовать
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог