LINUX.ORG.RU

[C++] Как реализовать два типа данных? Объект каждого из которых должен содержать указатель на объект другого

 


0

1

Такой вот наркоманский вопрос. Иными словами, хочется так:

class A { ..... B* parent; };

class B { ...... A* child; };

Но не можется, ясное дело. преобразование типов и void* не предлагать.....

Или, быть может, есть язык, где ТАКОЙ УЖАС возможен?

★★

Последнее исправление: yura_ts (всего исправлений: 1)

Ответ на: комментарий от yura_ts

Или разок нормально изучи язык, в котором работаешь :)

slackwarrior ★★★★★
()

поскольку на твой вопрос уже ответили, и ответили правильно, добавлю лишь, что, судя по названиям указателей, ты задумал что-то неправильное

shty ★★★★★
()

Почему же ужас, обычные перекрестные ссылки. Хотя в большинстве более современных языков это реализовано удобнее и появляется независимость от порядка объявления типов.

note173 ★★★★★
()
Ответ на: комментарий от note173

Почему же ужас, обычные перекрестные ссылки.

B* parent;
A* child;

ой, не уверен

в большинстве более современных языков это реализовано удобнее и появляется независимость от порядка объявления типов

ну и и здесь никакой особой сложности нет, поскольку A* и B* - это только указатели, и поскольку есть предварительное объявление

shty ★★★★★
()
Ответ на: комментарий от shty

View *child;
Screen *parent;

В с++ нужно опускаться до уровня порядка обрабоки файлов компилятором, а во многих других языках можно считать, что все включается одновременно и уже обработано на момент использования.

note173 ★★★★★
()
Ответ на: комментарий от note173
View *child;
Screen *parent;

я бы за такие названия переменных в бубен дал :)

В с++ нужно опускаться до уровня порядка обрабоки файлов компилятором

да нет, не особо нужно, главное смотреть чтобы не перекрывалось там чего, но при правильном написании кода в 99% случаев ничего не перекрывается

а во многих других языках можно считать, что все включается одновременно и уже обработано на момент использования.

ну и в С++ так, в той точке где пишешь код

shty ★★★★★
()
Ответ на: комментарий от Miguel

а что тут объяснять, child и parent - это отношения, причём отношения совсем не такие (надеюсь) в которых состоят view и screen, кроме того ни название child не говорит о принадлежности ко view, ни parent никак не намекает на screen

в итоге потом встретив в коде, к примеру:

parent->place(child, x, y);

я бы сильно расстроился и захотел бы кому-нибудь дать в глаз

shty ★★★★★
()
Ответ на: комментарий от shty

Понял. Я думал, тебе не нравятся сами child и parent. В сочетании с View и Screen - согласен, фигня.

Miguel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.