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

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

Войти
Регистрация
Восстановить пароль
 
andreyfreelans
63 / 29 / 6
Регистрация: 21.02.2011
Сообщений: 1,046
#1

Агрегация по ссылке - C++

28.09.2012, 15:47. Просмотров 1143. Ответов 3
Метки нет (Все метки)

Надо описать наследование классов используя агрегацию по ссылке, текст программы я написал, н окомпилятор выдает ошибку( подскажите как ее исправить? =)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
using namespace std;
 
class F {
  public:
    F() {f = 0;}
    int f;
    void mf() {
      f += 1;
      cout << "f = " << f << endl;
    }
};
class K {
  public:
    K() {k = 0;}
    int k;
    void mk() {
      k += 1;
      cout << "k = " << k << endl;
    }
};
class D {
  public:
    D() {d = 0;}
    int d;
    void md() {
      d += 1;
      cout << "d = " << d << endl;
    }
};
class E {
  public:
    E() {e = 0;}
    int e;
    void me() {
      e += 1;
      cout << "e = " << e << endl;
    }
};
class B {
  public:
    B() {}
    void link(K &k) {this->k = &k;}
    void link(D &d) {this->d = &d;}
    void link(E &e) {this->e = &e;}
    K* mbk() {return k;}
    D* mbd() {return d;}
    E* mbe() {return e;}
  private:
    K* k;
    D* d;
    E* e;
};
class C {
  public:
    C() {}
    void link(F &f) {this->f = &f;}
    F* mcf() {return f;}
  private:
    F* f;
};
class J {
  public:
    J() {j = 0;}
    int j;
    void mj() {
      j += 1;
      cout << "j = " << j << endl;
    }
 
};
class A {
  public:
    A() {}
    void link(B &b) {this->b = &b;}
    void link(C &c) {this->c = &c;}
    void link(J &j) {this->j = &j;}
    B* mab() {return b;}
    C* mac() {return c;}
    J* maj() {return j;}
  private:
    B* b;
    C* c;
    J* j;
};
 
int main()
{
  cout << "aggregation 1\n";
  K k; D d; E e; F f; B b; C c; J j; A a;
  a.link(b); a.link(c); a.link(j);
  b.link(k); b.link(d); b.link(e);
  c.link(f);
 
  a.mac()->mcf()->mf();
  a.mab()->mbk()->mk();
  a.mab()->mbd()->md();
  a.mab()->mbe()->me();
  a.maj()->mj();
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 15:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Агрегация по ссылке (C++):

Классы и агрегация - C++
Всем привет. Ребята, может кто дать рабочие примеры агрегации в классах) Буду очень благодарен, а то гугл особых результатов не принес

Взаимная агрегация - C++
Здравствуйте, не знал как правильно назвать тему, если ошибся - простите. Пишу симулятор банкомата, есть класс Card и User. Пользователь...

Агрегация ООП - C++
Здравствуйте. Помогите разобраться с одной деталью. Вот код:#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace...

Композиция/Агрегация - C++
Не понимаю четкой разницы между этими понятиями. Нашел тему на форуме http://www.cyberforum.ru/cpp-beginners/thread1312947.html, но из...

Агрегация массива в класс - C++
Решил описать класс вектора для работы с opengl, но не понимаю как можно передать данные объекту через массив путём агрегации....

Наследование, композиция и агрегация - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; class A { public: A() { cout&lt;&lt;&quot;Of A +&quot;&lt;&lt;...

3
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
28.09.2012, 15:50 #2
Какую ошибку? У меня компилит без проблем
0
andreyfreelans
63 / 29 / 6
Регистрация: 21.02.2011
Сообщений: 1,046
28.09.2012, 15:53  [ТС] #3
я писал на visual studio, может это как-то связанно с компилятором? код вроде правильно написан...
0
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
28.09.2012, 15:56 #4
Я запускал в visual studio 2008 - никаких ошибок. Скопируйте сюда текст ошибки
0
28.09.2012, 15:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2012, 15:56
Привет! Вот еще темы с ответами:

Наследование vs Композиция vs Агрегация: что лучше выбрать? Как лучше передавать объекты в функции? - C++
Добрый день!! Дело вот в чём, я хочу создать класс, внутри которого будут созданы объекты других классов (реализованных в некоторой...

Класс строка, класс текст, агрегация - C++
12. Текст (2 класса: строка, текст находятся в отношении агрегации) Конструкторы: по умолчанию, с параметрами и копирования. ...

Структуры "Бухгалтер" и "Бухгалтерия". Агрегация - C++
Бухгалтер Для агрегируемой структуры разработать функции ввода вывода, ввода с консоли, сравнения по всем полям. бухгалтерия для...

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


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

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

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