|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.10.2008, 23:36 | #1 |
Регистрация: 12.10.2008
Сообщений: 7
|
Как связать два класса?
Есть два класса, в первом должно быть поле с указателем на второй, во втором - с указателем на первый. Как такое реализовать? (при этом нужно будет вызывать методы класса B из Bptr и класса А из Аptr)
Наглядно: Код:
Последний раз редактировалось rpy3uH; 14.10.2008 в 11:29. |
14.10.2008, 05:44 | #2 | |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
Цитата:
Код:
если не получится - весь листинг декларации классов скинь.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. Последний раз редактировалось alexinspir; 14.10.2008 в 05:47. |
|
14.10.2008, 19:45 | #3 |
Регистрация: 12.10.2008
Сообщений: 7
|
Код:
|
14.10.2008, 20:21 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Aexs.Bptr->printB();
|
14.10.2008, 20:26 | #5 | |
Регистрация: 12.10.2008
Сообщений: 7
|
Цитата:
При этом выделяется строка Aptr = new A; из конструктора класса В. Использую C++ Builder 6.0 |
|
14.10.2008, 21:04 | #6 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
Хорош извращаться! %)
Цитата:
|
|
14.10.2008, 21:09 | #7 |
Регистрация: 12.10.2008
Сообщений: 7
|
ну да... конструкторы вызывают друг друга до бесконечности.
и все таки это задание такое - связать два класса, при том чтобы можно было вызывать все методы обоих классов из одного класса через член указатель на другой класс... т.е. методы самого класса вызывать не проблема, надо вызывать методы второго класса, причем и для А и для В. Последний раз редактировалось Skoverdrive; 14.10.2008 в 21:13. |
14.10.2008, 21:24 | #8 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
Цитата:
Мне кажется, что задание заключается в том, чтобы только из одного выбранного класса (А) вызывать методы другого (В), используя для этого указатель на его объект (В*). Это композиция и это нормально. Тут нужно четкое понимание того, чего от тебя хотят. |
|
14.10.2008, 22:10 | #9 |
Регистрация: 12.10.2008
Сообщений: 7
|
Нужно и для А и для В.
Сам преподаватель предлагал объявлять пустой класс В_0, потом А с указателем на В_0, потом от В_0 наследовать В с указателем на А; но так тоже не получается, потому что нельзя из родителя вызывать методы потомка, т.е. не получится А.В_0ptr->printB(); Вот я думаю, может есть какой нестандартный способ это реализовать. Вообще сама задача (точнее часть задачи) заключается в следующем: есть два свзанных понятия, например страна и турист. Так допустим класс А - страна, класс В - турист. В классе А храним указатель на массив туристов, которые в ней побывали, в классе В - указатель на массив стран, в которых побывал турист. Должна быть возможность распечатать всех туристов побывавших в какой-то определенной стране, или все страны, в которых побывал какой-то определенный турист. При этом полем должен быть обязательно указатель на другой класс, нельзя хранить например массив строк с названиями стран (или фамилий туристов). Т.о. функция, которую нужно вызывать и из А и из В - функция печати названия (или фамилии соответственно). Последний раз редактировалось Skoverdrive; 14.10.2008 в 22:30. |
15.10.2008, 06:08 | #10 | |
Новичок
Джуниор
Регистрация: 21.02.2008
Сообщений: 1
|
Цитата:
Тогда делаем конструктор с параметром типа A(B* array): aPtr(array){} и тоже самое соответственно с В. Потом в Main`е уже передаем имена массивов объектов в конструкторы классов в качестве параметра и вуаля. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как связать ShellChangeNotifier с ShellComboBox | lexaltd | Компоненты Delphi | 6 | 22.07.2008 00:01 |
Как связать C++ и Access? | demon-189 | Общие вопросы C/C++ | 1 | 23.04.2008 19:49 |
DBChart как связать с БД ? | Cantana | Помощь студентам | 2 | 02.02.2008 14:40 |
Как связать две программы на Паскале | Romanus | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 29.07.2007 21:09 |
Как связать кнопку с таблицей | Таня84 | БД в Delphi | 1 | 31.01.2007 14:02 |