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

Как связать несколько классов через один общий класс? - C++

Восстановить пароль Регистрация
 
Jammerwock
Сообщений: n/a
01.02.2013, 22:39     Как связать несколько классов через один общий класс? #1
Здравствуйте. Есть несколько несвязанных классов, каждый из которых хранит указатель на один общий класс (посредник, устанавливается в конструкторе). Этот общий, в свою очередь, хранит указатель на каждый из этих классов и создает их объекты, передавая им себя. Хотел получить доступ к public члену одного класса из другого используя указатель на класс-посредник, но ничего не получилось. Вот код. Подскажите, пожалуйста, так вообще можно делать или это ерунда? И как правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class C;
class A
{
public:
    int foo;
    C *c;
    A(C *_c)
    {
        c = _c;
        foo = 123;
    }
    
    void test()
    {
        //c->b->bar = 666; //ERROR 2027
    }
};
 
class B
{
public:
    int bar;
    C *c;
    B(C *_c)
    {
        c = _c;
        bar = 456;
    }
};
class C
{
public:
    A *a;
    B *b;
    C(){}
    void init ()
    {
        a = new A(this);
        b = new B(this);
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    C * c = new C();
    c->init();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 22:39     Как связать несколько классов через один общий класс?
Посмотрите здесь:

Как использовать функцию класса в другом классе (ни один из классов не наследует другой)? C++
Как связать несколько output потоков? C++
C++ как можно объеденить несколько скриптов в один?
Еще один вопрос по VC++? Несколько ToolBar как это сделать? C++
как связать несколько файлов одной программы C++
С++ Немного графики и как связать несколько функций в одной программе?чтото намудрила.не работает C++
C++ Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс
C++ Как в один вектор поместить много классов?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
01.02.2013, 23:03     Как связать несколько классов через один общий класс? #2
Конкретно в этом примере класс С надо перетащить выше класса А

Добавлено через 1 минуту
Хотя нет. Все равно будет ошибка о незаконченном типе. Нужно растаскивать описание и реализацию по h и cpp файлам
Jammerwock
Сообщений: n/a
01.02.2013, 23:41     Как связать несколько классов через один общий класс? #3
Огромное вам спасибо. Все получилось. Разнес все по .h- и .cpp-файлам, добавил все .h-файлы в stdafx.h, во все .cpp-файлы включил stdafx.h и в первом включенном в stdafx.h .h-файле (у меня А.h) добавил предварительное объявление class C.
Yandex
Объявления
01.02.2013, 23:41     Как связать несколько классов через один общий класс?
Ответ Создать тему
Опции темы

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