|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
|||||||||||
Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?05.07.2011, 22:45. Показов 9301. Ответов 42
Метки нет (Все метки)
На самом деле ничё фантастического я не прошу, ведь:
0
|
|||||||||||
| 05.07.2011, 22:45 | |
|
Ответы с готовыми решениями:
42
Может ли объемлющий класс иметь неограниченный доступ к элементам вложенного класса? А вложенный класс — к элементам объемлющего? Как правильно передавать параметры из класса А в класс С через класс B? Класс: как обратиться к методу производного класса через итератор на базовый класс? |
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
|
| 06.07.2011, 12:12 | |
|
0
|
|
|
Заблокирован
|
|
| 06.07.2011, 12:26 | |
|
Тут видите в чем загвоздка то, что бы правильно сформулировать требования к архитектуре, нужно уметь вообще проектировать архитектуру)
А пока автор ещё только учится на архитектора, то естественно, что он и требования к архитектуре корректно сформулировать не сможет) В таких условиях, единственное, от чего можно плясать - это от формулировки самой задачи, и от желаемого интерфейса будущего класса.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
|||||||||||||||||||||||||||||||||||||||||
| 06.07.2011, 16:28 [ТС] | |||||||||||||||||||||||||||||||||||||||||
|
Короче так, друзья, вот что такое
Теперь: у каждой матрицы есть диагональ, и я хотел бы обращаться к элементам диагонали аналогично тому, как я обращаюсь к элементами матрицы A [stroka][stolbets] Ну а теперь представьте что строки это диагонали. Например: 12 13 14 15 16 17 18 19 20 21 22 23 Вот матрица. В ней 6 диагоналей, вот они: 12 16 13 20 17 14 21 18 15 22 19 23 (Это, конечно, условность, они могут идти и справа налево и сверху вниз, но я решил так.) Теперь я хочу обратиться к диагонали 3 элементу 2, я пишу
Теперь главное реализовать вот это:
...В наличии есть функция, а в ней формула которая преобразует ДИАГОНАЛЬНЫЕ координаты [2][3] в СТАНДАРТНЫЕ координаты [1][2], я её накропал сам //////////////////////////////////////////////////// Собсно,размышляя сегодня на лоне природы о бренности всего земного, я пришёл к выводу, что я сию херь реализую без труда так:
И ещё: не хочется иметь два массива: собственно матрицу и массив диагоналей. Тогда, наверное, я используя перегрузку операторов [] всё-таки получу нужный мне элемент. Но! Тогда изменив элемент матрицы, например:
Добавлено через 10 минут Ребята, я наперепутывал всё с координатами, извиняюсь. Короче диагонали считаются с левого верхнего угла (нулевая диагональ) и пошли вниз до правого нижнего угла, а элементы диагоналей считаются слева направо и соответственно снизу вверх
0
|
|||||||||||||||||||||||||||||||||||||||||
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
|||
| 06.07.2011, 16:31 | |||
|
тем более ты уже сам запутался ![]() занялся бы чем-нибудь полезным. Почитай лучше страуструпа, если с классами и абстракцией данных проблемы, мейерса, александреску. У тебя какая-то нездоровая мания решать простые задачи через задницу и какой с этого толк? Помоему пустая трата времени
0
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
|
| 06.07.2011, 16:39 [ТС] | |
|
Да, человек должен будет прочитать мануал. Данный порядок неочевиден. Но ты представляешь, я расчитываю на людей, умеющих читать. По крайней мере я читать умею, а мне это пригодится. А я запутался не тем более, просто ошибся чуток с координатами. Короче, ты не знаешь.
0
|
|
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
||
| 06.07.2011, 16:47 | ||
|
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
|
| 06.07.2011, 16:48 [ТС] | |
|
Пусть так.
0
|
|
|
Заблокирован
|
||
| 06.07.2011, 17:01 | ||
|
Но главное, что сейчас не понятно, какие, и как вы планируете хранить данные. Давайте сделаем по взрослому: Сделайте диздок класса Матрицы. Обычный текстовый файл, в котором по пунктам с толком с расстановкой будит описано: - задача, которую реализует класс, - интерфейс класса. Подробно расписав каждый метод. Желательно с примерами. Отдельно опишите предполагаемые внутренности класса, какие данные будут храниться, как они будут храниться, в частности, если Матрица содержит внутри Диагональ, то опять таки, опишите задачи, которые выполняет диагональ, её интерфейс (тоже подробно расписанный по каждому паблик-методу) Если вам требуется выполнение некоторых математических расчетов, или преобразований - добавьте описание математических алгоритмов, которые нужно будит использовать (можно даже в псевдо-коде) с пояснениями, как этот алгоритм работает. Ну или хотя бы просто, что он должен делать. /зы сделать доступ к данным через Диагональ не проблема, проблема не спутать понятие "деталь интерфейса", и "частные данные"
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
||||||
| 07.07.2011, 17:27 [ТС] | ||||||
|
Если всё понятно и не отвратительно, тогда добавлю сюда свою задачу. Всё работает и вопросов у меня не вызывает, на вашем месте я бы реализацию не смотрел.
0
|
||||||
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
|||
| 07.07.2011, 19:01 | |||
|
Добавлено через 10 минут Добавлено через 1 час 6 минут кстати ты в конструкторах используешь разные формы new(строки58-59 и 66), а в деструкторе применяешь исключительно delete[] это может привести к печальным последствиям
0
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
|
| 07.07.2011, 19:03 [ТС] | |
|
А как надо освобождать память?
0
|
|
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
||||||
| 07.07.2011, 19:09 | ||||||
|
можно проверять kolvo_strok и kolvo_stolbcov и в зависимости от него вызывать соответсвующий delete, либо в конструкторе по умолчанию выделять наверное так
0
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
||
| 07.07.2011, 19:30 [ТС] | ||
|
void operator delete (void* addr);
0
|
||
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
|
| 07.07.2011, 19:47 | |
|
то что ты написал никак не противоречит моему утверждению, а оно такого:
если выделял new[] то удаляй delete[] если выделял new то удаляй delete а в ссылке которую ты привёл речь идёт об определении собственных new и delete
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 07.07.2011, 19:48 | |
|
kravam, ага, щас... Для каждого new надо вызывать соответствующий delete. Создали одиночную область памяти с помощью new - вызвали delete, создали массив с помощью new [] - обязательно надо вызвать delete [].
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
||||||
| 07.07.2011, 19:53 [ТС] | ||||||
|
ОК, не покажешь, где описан пример использования delete так
Добавлено через 1 минуту И ещё я могу книжки назвать, где это не описано.
0
|
||||||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
| 07.07.2011, 19:55 | ||||||
|
kravam,
0
|
||||||
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
|
| 07.07.2011, 19:56 | |
|
а чё там может не получится? исключений delete вроде как не вызывает, главное чтобы указатель был валидным, можно и нулевой
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
|
| 07.07.2011, 20:12 [ТС] | |
|
silent_1991, чё уж так-то уж, я ведь и сам мог delete p написать и компильнуть. Я просил пример из учебника какого-нибудь.
Но как-бы то ни было, у Павловской я нашёл, что да, можно delete p, а можно delete [] p; При чём строго-настрого сказано, что если память выделена под массив, то надо второй вариант. Иначе удалится только память под первый объект, да это и так понятно. Но подобных строгих ограничений не наложено если память выделена под один элемент. int * p= new x; То есть сказано, что надо освободить так: delete p. Я тут думал-думал чё страшного может произойти, если я буду писать delete [] p чё и никак не придумал. Ничего. Но так-то я чел дисциплинированный, сказано писать без квадратных скобок, буду писать без квадратных скобок. Дабы приучать себя к порядку.
0
|
|
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 07.07.2011, 20:17 | ||
![]() Т.к. в стандарте говорится, что удаление массива с помощью delete, как и удаление одиночного объекта с помощью delete [] это "behavior is undefined"
0
|
||
| 07.07.2011, 20:17 | |
|
Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами Класс: Описать класс Points, затем производный от него Circle Класс: Разработать абстрактный класс класс Point для задания координаты...
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|