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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
vitek26
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 4
#1

Объявлние классов в разных заголовочных файлах - C++

15.01.2011, 18:42. Просмотров 1861. Ответов 4
Метки нет (Все метки)

Приветствую всех участников форума.
Есть 2 класса А и В. Каждый из содержит указатель на другой класс. Как сделать объявление классов в разных заголовочных файлах? Сейчас использую один заголовочный файл примерно такого вида:
C++
1
2
3
4
5
6
7
8
9
10
11
//module.h
class B;
class A
{
    B* pointer;
};
 
class B
{
    A* pointer;
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2011, 18:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объявлние классов в разных заголовочных файлах (C++):

Про добавление заголовочных файлов в заголовочных файлах - C++
В который раз эта вещь засовывает мозги в блендер! Я про то, что не могу однозначно запомнить (основываясь на моих знаниях о директиве...

О стандартных заголовочных файлах - C++
Не знаю в какую категорию отнести данное нубство, но все же: Часто использую некоторые возможности/функции для которых не делал...

Массивы в заголовочных файлах - C++
в заголовочном файле в описании класса пишу: int _const_iMas = {0x63,0x7c,0x78,0x79}; В итоге компилятор подчёркивает знак '='...

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

Определение переменных в заголовочных файлах - C++
Здорова! Определил переменную в заголовочном фале от так #pragma once #ifndef _imya_zagol_fayla #define _imya_zagol_fayla ...

Статические свойства структур в заголовочных файлах - C++
Всем привет. Не могу найти в интернете инфу о том, как ведут себя статические свойства структур определённых в заголовочных файлах и...

4
Jupiter
Каратель
Эксперт С++
6558 / 3979 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.01.2011, 18:47 #2
достаточно подключить хедер с вторым классом
0
vitek26
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 4
15.01.2011, 18:55  [ТС] #3
Я пытался сделать два заголовочных файла вот так

C++
1
2
3
4
5
6
7
8
//class A
//file A.h
#include "B.h"
 
class A
{
        B* pointer;
};
C++
1
2
3
4
5
6
7
8
//class B
//file B.h
#include "A.h"
 
class B
{
        A* pointer;
};
Но на этапе компиляции ошибки. Файлы ссылаются друг на друга и в итоге ничего хорошего... Я хочу узнать, есть способы обойти это, кроме как включение классов в один файл?
0
Jupiter
Каратель
Эксперт С++
6558 / 3979 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.01.2011, 19:16 #4
сделайте так как в первом своем посте
C++
1
2
3
4
5
6
7
//А.h
#include "В.h"
class B;
class A
{
        B* pointer;
};
C++
1
2
3
4
5
6
7
//В.h
#include "A.h"
class А;
class B
{
        A* pointer;
};
Добавлено через 1 минуту
и про стражи включения не забудьте
0
vitek26
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 4
13.02.2011, 20:42  [ТС] #5
Этот совет неверный. Множественное объявление классов.
Если у кого-нибудь возникнет подобная проблема, я решил её следующим образом:
Создал ещё один заголовочный файл, в котором объявил оба класса.
C++
1
2
3
//declare.h
class A;
class B;
И этот файл включил в A.h и B.h
0
13.02.2011, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2011, 20:42
Привет! Вот еще темы с ответами:

Куча ошибок в заголовочных файлах,вызванных из windows.h! - C++
с чем это может быть связано? этот же код без всяких изменений уже компилировался и работал... 1> Исходный код.cpp 1>c:\program...

Использование указателей на контейнеры STL в заголовочных файлах - C++
Для использования указателей на I/O классы достаточно включить <iosfwd> который содержит опережающие объявления и таким образом появляется...

Реальное применение классов и заголовочных файлов - C++
работаю с Visual Studio около полугода, и нигде не видел более иезуитского способа организации инклудов и классов. это просто нечто. когда...

Оформление заголовочных файлов для классов - C++
Всем доброго времени суток! Недавно начал писать программы с использованием ОПП, и возникло несколько вопросов. Если у нас есть много...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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