![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.10.2008
Сообщений: 7
|
![]()
Есть два класса, в первом должно быть поле с указателем на второй, во втором - с указателем на первый. Как такое реализовать? (при этом нужно будет вызывать методы класса B из Bptr и класса А из Аptr)
Наглядно: Код:
Последний раз редактировалось rpy3uH; 14.10.2008 в 11:29. |
![]() |
![]() |
![]() |
#2 | |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
![]() Цитата:
Код:
если не получится - весь листинг декларации классов скинь.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. Последний раз редактировалось alexinspir; 14.10.2008 в 05:47. |
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 12.10.2008
Сообщений: 7
|
![]() Код:
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,089
|
![]()
Aexs.Bptr->printB();
|
![]() |
![]() |
![]() |
#5 | |
Регистрация: 12.10.2008
Сообщений: 7
|
![]() Цитата:
При этом выделяется строка Aptr = new A; из конструктора класса В. Использую C++ Builder 6.0 |
|
![]() |
![]() |
![]() |
#6 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
![]()
Хорош извращаться! %)
Цитата:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 12.10.2008
Сообщений: 7
|
![]()
ну да...
![]() и все таки это задание такое - связать два класса, при том чтобы можно было вызывать все методы обоих классов из одного класса через член указатель на другой класс... ![]() т.е. методы самого класса вызывать не проблема, надо вызывать методы второго класса, причем и для А и для В. Последний раз редактировалось Skoverdrive; 14.10.2008 в 21:13. |
![]() |
![]() |
![]() |
#8 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
![]() Цитата:
Мне кажется, что задание заключается в том, чтобы только из одного выбранного класса (А) вызывать методы другого (В), используя для этого указатель на его объект (В*). Это композиция и это нормально. Тут нужно четкое понимание того, чего от тебя хотят. |
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 12.10.2008
Сообщений: 7
|
![]()
Нужно и для А и для В.
Сам преподаватель предлагал объявлять пустой класс В_0, потом А с указателем на В_0, потом от В_0 наследовать В с указателем на А; но так тоже не получается, потому что нельзя из родителя вызывать методы потомка, т.е. не получится А.В_0ptr->printB(); Вот я думаю, может есть какой нестандартный способ это реализовать. Вообще сама задача (точнее часть задачи) заключается в следующем: есть два свзанных понятия, например страна и турист. Так допустим класс А - страна, класс В - турист. В классе А храним указатель на массив туристов, которые в ней побывали, в классе В - указатель на массив стран, в которых побывал турист. Должна быть возможность распечатать всех туристов побывавших в какой-то определенной стране, или все страны, в которых побывал какой-то определенный турист. При этом полем должен быть обязательно указатель на другой класс, нельзя хранить например массив строк с названиями стран (или фамилий туристов). Т.о. функция, которую нужно вызывать и из А и из В - функция печати названия (или фамилии соответственно). Последний раз редактировалось Skoverdrive; 14.10.2008 в 22:30. |
![]() |
![]() |
![]() |
#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 |