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

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

Войти
Регистрация
Восстановить пароль
 
Simito
0 / 0 / 0
Регистрация: 09.04.2011
Сообщений: 18
#1

Как связать абстр. классы? - C++

09.04.2011, 01:54. Просмотров 837. Ответов 3
Метки нет (Все метки)

Необходим совет или помощь в решении проблемы. Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// a.h
class A
{
   public: virtual void somefuncA() = 0;
};
// b.h
#include "a.h"
#include "c.h"
class B : class A
{
   public: virtual void somefuncB() = 0;
   public: virtual void connect(C* c){}; // почему-то нельзя писать = 0 (?)
};
// c.h
#include "a.h"
#include "b.h"
class C : class A
{
   public: virtual void somefuncC() = 0;
   public: virtual void connect(B* b){};
}
От классов B и С потом наследуются классы с реализацей. Однако компилятор не компилирует. Выдает ошибку b не имеет типа. Можно передавать A* b и A* с, но так не могу вызывать, например, b->somefuncB() и т.д.
Как мне связать два класса С и B между собой по такой схеме?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2011, 01:54     Как связать абстр. классы?
Посмотрите здесь:

Связать классы. - C++
Дрпустим есть два класса и некторые методы в них: в 1(class c1) ... void SetLight(int lightcount) ... в 2(class c2) ... ...

Связать классы Education и Info, предоставляющие информацию о сотруднике. - C++
Создать 2 базовых класса Education (содержит информацию об образовании сотрудника) и Info (содержит информацию о личных данных сотрудника)....

Связать следующие классы в иерархию наследования: ArcherCharacter, Wizard, SwordsMan, LongRange - C++
Character (Персонаж), LongRange (Персонаж дальнего действия), Wizard (Маг), SwordsMan (Мечник), Archer (Лучник). #include <string> //...

Как связать 2 программы - C++
Как одной программе считывать значения из другой программы и выводить результат исходя из взятых значений?

Как связать код с графикой? - C++
Всем привет! Подкиньте, пожалста, литературы, как связать 2д/3д графику с кодом. Например, чтобы при задании координат на декартовой...

Как связать несколько output потоков? - C++
Можно ли создать поток, который будет связан с несколькими потоками, что-бы при записи в него производиласт запись и во все связаные...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.04.2011, 08:20     Как связать абстр. классы? #2
Нельзя использовать неизвестные типы. В самом начале допиши:
C++
1
2
3
class A;
class B;
class C;
Т.е. объяви тип перед использованием.
Simito
0 / 0 / 0
Регистрация: 09.04.2011
Сообщений: 18
09.04.2011, 12:27  [ТС]     Как связать абстр. классы? #3
Спасибо, помогло.
Но я первый раз вижу что надо делать так, разве #include *.h не обеспечивает то самое объявление?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2011, 12:50     Как связать абстр. классы?
Еще ссылки по теме:

Как связать два файла с кодами? - C++
В одном файле вычисляется константа, которая используется при расчете функции в другом файле. Какой элементарный способ можно использовать,...

Как связать число символов и слово - C++
#include <iostream> #include <string> #include <sstream> using namespace std; int main() { string str, s1, s2; int...

Dll и EXE,как их связать?)Очь нада) - C++
Всем привет.Вот пару дней наза занялся програмированием на C++.До этого в visual Basic мутил програмки.Но basic детская песочница по...

Как связать две таблицы по нескольким полям? - C++
Нужно, что бы работала связь Master-Detail. Но связать таблицы можно только сразу по двум полям, т.к. только в паре получается уникальная ...

Как связать строки и массив указателей на них - C++
Привет. Была следующая задумка разбить строку на лексемы и каждую лексему отдельно занести в массив указателей на них *tableToken, но...

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


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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.04.2011, 12:50     Как связать абстр. классы? #4
У тебя перекрёстное объявление. Т.е. после объединения получается именно то, что в первом посте приведено. Т.е. в строке 13 используется неизвестный тип С. А неизвестные типы использовать низя.
Yandex
Объявления
09.04.2011, 12:50     Как связать абстр. классы?
Ответ Создать тему
Опции темы

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