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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Anaal Nathrakh
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 4
#1

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

06.12.2012, 22:06. Просмотров 851. Ответов 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++
Есть 2 модуля: mod.h (содержит модуль для работы с данными) и base.h (содержит родительские классы). От так это схематично выглядит: ...

Использование классов - C++
Не хочет запускаться, помогите найти ошибку #include <iostream> #define N 5 using namespace std; class electronic_store { ...

Использование классов - C++
Класс Члены класса Методы Операторы перегрузки Исходные данные Матрица Размерность ...

Использование классов - C++
Составить программу для объявления и использования данных типа класс согласно индивидуальному заданию, Базовый (транспортное средство) ...

Использование классов - C++
Расскажите пожалуйста на кокретных примерах как и где модно использовать классы?

Использование классов - C++
Разработать заголовочный файл, содержащий описание соответствующего класса, функции и операторы. Описание функций-членов класса разместить...

Использование классов - C++
Здравствуйте господа программисты. Помогите мне пожалуста. В Курсовой есть такое задание: "Создать телефонную книгу" Программный проект...

Создание и использование классов - C++
Доброго все здравия, попытался сам написать класс, отрицательный результат ниже. #include "stdafx.h" #include <iostream> using...

Использование наследования классов - C++
День добрый, форум! Вот такой вопрос: Есть родительский класс A, у него 2 потомка, B и C. Внутри другого класса F я создаю объект...

Совместное использование классов - C++
Здравствуйте, возник такой вопрос, как следует писать код, чтобы 2 не зависимых класса могли использовать друг друга? Вот к примеру код ...

Использование функциональных классов - C++
Помогите решить задачу: Создать список из строк длиной не более 100 символов. Из всех подряд идущих строк с одинаковым количеством...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1642 / 1270 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 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 файлов и классов
Ответ Создать тему
Опции темы

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