|
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 17
|
||||||
Инкапсулировать без серьезного изменения..возможно ли?07.02.2011, 22:15. Показов 8196. Ответов 90
Метки нет (Все метки)
собственно это кольцевая очередь, на которой у меня построено уже 4 след лабы.Пошел сегодня сдавать - препод ткнул рукой в не инкапсулированный public: list_block* next; из class list_block в самом начале. И говорит, пока не перепишешь все так, чтоб он был в привате - не приму. А там куча операций присваивания и считывания через (->) из class circle_list и его сына quene. Причем фрэнды использовать запретила. НА все мои возражения только кивает *овца(( Во общем, как малой кровью вбахать эту глупость в приват и иметь к ней нормальный доступ отовсюду? что не переписывать еще 5 таких лаб в хз скольких меcтах ?..
0
|
||||||
| 07.02.2011, 22:15 | |
|
Ответы с готовыми решениями:
90
Событие изменения содержимого страницы без изменения адреса и перезагрузки страницы Возможно ли изменения счётчика Возможно ли в IDLE применить изменения, не закрывая всех окон? |
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 08.02.2011, 03:47 | ||
|
POD-объект может быть инициализирован с помощью агрегатного инициализатора (в фигурных скобках). Локальный POD-объект без инициализатора имеет неопределенное значение. При инициализации пустым инициализатором данные получают значение 0 или false. В инструкции goto можно обходить объявления POD-объектов.
0
|
||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 08.02.2011, 12:26 | |
|
Mr.X, за информацию спасибо, но к теме это не относится. Мы тут рассматриваем всё же не POD, а сиплюсплюсные классы.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 08.02.2011, 12:48 | ||
|
0
|
||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
||
| 08.02.2011, 13:31 | ||
|
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 08.02.2011, 14:18 | ||
|
Что касается шаблона класса std::pair, то это классический пример аналога паскалевской записи. Класс же std::list слишком сложен, чтобы его здесь обсуждать, да и обобщенное программирование – это совсем отдельная песня.
0
|
||
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
||||||||||
| 08.02.2011, 21:16 | ||||||||||
|
Либо признать, что ляпнул не подумав. Тем более, что я уже привёл контрпример, его опровергающий.
Вот определение основы узла списка из исходников СБШ:
0
|
||||||||||
|
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 17
|
|
| 08.02.2011, 23:11 [ТС] | |
|
VOLOVZI
так если я инкапсулирую подклас это ничего не изменит.. те же грабли, только она мне заявит, что подкласс некорректен есть какие-нибудь другие легальные методы влезть в приват?
0
|
|
|
|
|
| 08.02.2011, 23:34 | |
|
Если так критично поставить указатель в приват, то сделайте так и заведите паблик функцию выдающую этот указатель
0
|
|
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 09.02.2011, 00:45 | |
|
124bit, не понял, что не изменит? Какие грабли? Я тут, блин, на три страницы распинаюсь в попытке объяснить суть.
И разберись уже с термином «инкапсуляция». Модификатор доступа private и инкапсуляция — это совершенно разные вещи.
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 17
|
|
| 09.02.2011, 08:35 [ТС] | |
|
Predator_2004
Так черт... это ж не весь код. У меня еще 5 лаб на этой основе. Мне кода огогого придется менять, если я ввиду функции записи и считывания. Задача как раз чтоб решить вопрос малой кровью-малыми изменениями VOLOVZI я тебя понимаю, и с абсолютно с тобой согласен. Но учитывая специфику ситуации(препода!) задача стоит не *сделать норм программу*, а *переделать программу выше так, чтоб тот указатель стоял в привате*. При ввведении подкласса, у меня сам класс выходит корректен, с точки зрения препода, а подкласс некорректен. Вот. Причем вариант *что-то объяснить* не канает
0
|
|
|
|
|
| 09.02.2011, 09:00 | |
|
Попробуйте так тогда: указатель в приват, в вашем классе list_block пропишите все классы со спецификатором friend, обращающиеся к этому указателю. Это по-моему минимум изменений. А вообще почитайте http://cppforeach.wordpress.co... modifiers/ например и выберите оптимальный для себя вариант.
0
|
|
|
11 / 11 / 4
Регистрация: 27.09.2010
Сообщений: 32
|
|||||||||||
| 09.02.2011, 12:34 | |||||||||||
|
Всю программу не смотрела, возможно решить проблему можно при помощи accessors и mutators методов, что это такое, как и почему именно их нужно использовать подробно рассказывает google.
В кратце напишу суть: это методы get и set для каждой переменной класса, значение которой необходимо менять извне. Например, есть некоторый класс:
0
|
|||||||||||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||
| 09.02.2011, 13:23 | ||
|
2
|
||
|
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 17
|
|
| 09.02.2011, 16:52 [ТС] | |
|
всем конечно спасибо, за то что стараетесь помочь, но последние три ответа это даже не *фэйспалм*, это *фейсбук* какой-то(((
Predator_2004 ФРЭНДЫ ИСПОЛЬЗОВАТЬ МНЕ ЗАПРЕТИЛИ silent1991 Класс спроэктирован правильно, просто есть куча других классов которые его используют, не так как хочет перпод, а напрямую. И я таки считаю, что инкапсуляцию я выполняю верно, в данном конкретном случае для указателя некст она не требуется. Препод так не считает. Josefina черт(( да йомайо.. это писец скоко переписывать. Вся ж соль в том, чтоб не юзать эти мутаторы и аксессоры в данном случае, но лезть при этом в приват
0
|
|
|
|
|
| 09.02.2011, 18:51 | |
|
Каково назначение класса listblock по-вашему? Приведите пожалуйста условие.
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||
| 09.02.2011, 20:01 | ||
|
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 09.02.2011, 20:04 | |
|
124bit, Неверно спроектирован класс. Не надоело спорить со всем форумом? Если вы 3наете лучше всех, как должно быть, то зачем вы просите совета, как это переделать?
1
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 09.02.2011, 20:15 | ||
|
0
|
||
|
|
|
| 09.02.2011, 23:19 | |
|
Короче говоря слушайте что вам говорит преподаватель. В контексте поставленных требований переделывать придется достаточно. Я бы рекомендовал переделать все. Теперь немного лирики: вам не зря препод толдычет про этот указатель. В данном случае он обязан быть в секции private. Почему? На это две причины. Первая: так называемая "культура программирования", которая прививается определенной группой преподавателей студентам с переменным успехом. Суть в том, (яркий пример - всевозможные списки) чтобы к указателю обращались только две функции, а именно на чтение/запись упрощает читабельность кода во многих случаях. Существенно. Из данного непосредственно следует вторая причина: отлов ошибок при работе. Согласитесь гораздо проще отыскать в работе с указателем баг когда с ним работает только две функции. А когда кода ~250 строк, такой отлов превращается в ночной кошмар (особенно если сбой в адресации - не факт что за час узнаешь в каком классе баг). В общем доводы приведены, и цитируя многих "учите матчасть", желаю успеха в нелегком труде!
0
|
|
|
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
|
|
| 10.02.2011, 01:50 | |
|
Слыште, специалисты, на мои вопросы кто-нибудь ответит, или продолжите пустую болтовню?
0
|
|
| 10.02.2011, 01:50 | |
|
Возможно Ли Внести Изменения В Дизайн Только Конкретных Почтовых Баз Не удалось запустить Windows. Возможно это произошло из-за недавнего изменения оборудования Инкапсулировать класс Веб-программист для серьезного проекта нужны специалисты для серьезного проекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|