|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||||
Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?05.07.2011, 22:45. Показов 8818. Ответов 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,705
|
|||||||||||||||||||||||||||||||||||||||||
| 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,705
|
|
| 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,705
|
|
| 06.07.2011, 16:48 [ТС] | |
|
Пусть так.
0
|
|
|
Заблокирован
|
||
| 06.07.2011, 17:01 | ||
|
Но главное, что сейчас не понятно, какие, и как вы планируете хранить данные. Давайте сделаем по взрослому: Сделайте диздок класса Матрицы. Обычный текстовый файл, в котором по пунктам с толком с расстановкой будит описано: - задача, которую реализует класс, - интерфейс класса. Подробно расписав каждый метод. Желательно с примерами. Отдельно опишите предполагаемые внутренности класса, какие данные будут храниться, как они будут храниться, в частности, если Матрица содержит внутри Диагональ, то опять таки, опишите задачи, которые выполняет диагональ, её интерфейс (тоже подробно расписанный по каждому паблик-методу) Если вам требуется выполнение некоторых математических расчетов, или преобразований - добавьте описание математических алгоритмов, которые нужно будит использовать (можно даже в псевдо-коде) с пояснениями, как этот алгоритм работает. Ну или хотя бы просто, что он должен делать. /зы сделать доступ к данным через Диагональ не проблема, проблема не спутать понятие "деталь интерфейса", и "частные данные"
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 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,705
|
|
| 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,705
|
||
| 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,705
|
||||||
| 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,705
|
|
| 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 для задания координаты...
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|