|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||||
Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?05.07.2011, 22:45. Показов 8873. Ответов 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 для задания координаты...
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Video:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|