Форум программистов, компьютерный форум CyberForum.ru

Перекрестное использование .h файлов и классов - C++

Восстановить пароль Регистрация
 
Anaal Nathrakh
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 4
06.12.2012, 22:06     Перекрестное использование .h файлов и классов #1
Добрый вечер! Никак не могу придумать запрос, по которому гуглить, поэтому обращаюсь к вам за помощью.

Суть проблемы такова. Имеются два .h файла с объявленными классами. Для определенности A.h и B.h, и классы А и В соответственно. Класс А должен использовать класс В и наоборот, класс В должен использовать класс В. Как реализовать подобное?

Если без обобщений, то сейчас есть два класса: BMP и JPEG, в которых есть возможности создавать BMP из JPEG и наоборот. Понятно, что подключать в оба заголовочных файла второй - не вариант, получается либо рекурсивное подключение, либо, если стоит макрозащита, в одном из заголовочных файлов не будет другого.

В похожей теме на Хабре встречал словосочетание forward declaration, но кажется, это не по теме.

Проблема, скорее всего, тривиальная, но решение в голову не приходит. Буду благодарен за помощь.

P.S. Не уверен, что код здесь необходим, но пусть будет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//BMP.h
 
#ifndef _BMP_H_
#define _BMP_H_
 
class BMP
{
public:
 
    BMP(char* bmpPath);
    BMP(JPEG);
    //прочие методы и поля
};
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//JPEG.h
 
#ifndef _JPEG_H_
#define _JPEG_H_
 
class JPEG
{
public:
    JPEG(BMP);
    JPEG(char* jpegPath);
    JPEG();
    //остальные поля и методы
};
 
#endif
Добавлено через 1 час 55 минут
Еще два часа гугления не принесли никаких результатов...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 22:06     Перекрестное использование .h файлов и классов
Посмотрите здесь:

C++ Использование классов
Создание и использование классов C++
Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов C++
Использование классов C++
C++ Перекрестное подключение заголовочных файлов
Использование классов Worda C++
Использование классов C++
Использование классов C++
C++ Использование классов
C++ Использование классов
Перекрестное включение / перегрузка оператора класса извне C++
C++ Использование классов (sha1)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
06.12.2012, 22:29     Перекрестное использование .h файлов и классов #2
можно сделать так
C++
1
2
3
4
5
6
7
8
9
10
class JPEG;
 
class BMP
{
public:
 
    BMP(char* bmpPath);
    BMP(JPEG);
    //прочие методы и поля
};
Yandex
Объявления
06.12.2012, 22:29     Перекрестное использование .h файлов и классов
Ответ Создать тему

Метки
Использование, классов, Перекрестное, файлов
Опции темы

Текущее время: 03:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru