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

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

Войти
Регистрация
Восстановить пароль
 
klik07
3 / 3 / 0
Регистрация: 17.11.2013
Сообщений: 33
#1

Предварительное объявление класса - C++

02.03.2014, 17:52. Просмотров 381. Ответов 3
Метки нет (Все метки)

Имеется код такого вида:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class IBase {
public:
virtual foo() = NULL;
..
..
..
};
 
class A: public IBase {
private:
B *x;
..
..
..
}
 
class B: public A {
..
..
..
}
Думаю, проблема многим уже видна. Этот код компилироваться не хочет, так как классы A и B имеют взаимную зависимость. Я не знаю как правильно объявить эти классы, чтобы код стал рабочим. Читал про .cpp и .h файлы, но как с ними работать не разобрался. Объясните на пальцах, как исправить проблему)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 17:52     Предварительное объявление класса
Посмотрите здесь:

Предварительное объявление для класса, помещенного в простанство - C++
Пытаюсь сделать forward declaration для библиотечного класса ostream помещенного в namespace std. Код ниже не катит. Как делается...

Предварительное объявление классов. Вызвать функцию до реализации класса - C++
Приветствую, народ. Пытаюсь реализовать структуру типа патерна "Посредник". И при реализации взаимодействий возникла проблемка. ...

Два класса в одном заголовочном файле, предварительное объявление - C++
Дико туплю, никак не могу понять, где косячу. Ситуация - есть два описания классов в одном заголовочном файле (все делается с...

Предварительное объявление - C++
Добрый вечер, Есть файл file.h и file.cpp, в file.cpp я делаю подключение #include <boost/signal.hpp>, не подключаю в хэдер file.h...

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

Объявление дружественного класса внутри класса - C++
class A{ friend class B{ B(A &a); } } Подскажите пожалуйста, такое возможно или нет, я хотел чтобы...

Объявление класса Point - C++
Объявил класс Point в заголовочном класса для хранения значений координат x,y а далее класс Rectanagle и вот в классе Rectanagle каждая...

Объявление класса Patient - C++
Доброго времени суток! Есть программа, в ней несколько файлов. Есть класс Patient, на который создается указатель в файле...

Объявление структуры и класса - C++
Ругается на строку obj_cls.prv=3; и на объявление класса. Что у меня не правильно? #include <iostream> using namespace std; ...

Объявление объектов класса - C++
Как инициализировать объекты класса вне функции main, но и не в глобальной области? Объявленные объекты занимают много пространства в...

Объявление объекта класса - C++
Доброе время суток! Дело вот в чем: В конструкторе c параметрами класса Piramida, мне нужно создать объект класса M_Ygolnik с...

Двойное объявление класса - C++
Для чего два раза писать class Animal? class Animal; void setValue (Animal&, int); class Animal { public: Animal(); ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6281 / 5884 / 1905
Регистрация: 18.12.2011
Сообщений: 15,094
Завершенные тесты: 1
02.03.2014, 17:55     Предварительное объявление класса #2
C++
1
2
3
class B;
class A: public IBase {
...
klik07
3 / 3 / 0
Регистрация: 17.11.2013
Сообщений: 33
02.03.2014, 17:58  [ТС]     Предварительное объявление класса #3
так дело в том, что
C++
1
2
3
4
class B: public A {
..
..
}
по смыслу по-другому уже никак не сделать
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
02.03.2014, 18:25     Предварительное объявление класса #4
добавь всего 1 строку как показал zss, а дальше пиши по своему смыслу
Yandex
Объявления
02.03.2014, 18:25     Предварительное объявление класса
Ответ Создать тему
Опции темы

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