|
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,831
|
|||
Пишем свой класс, спецификатор доступа protected09.07.2015, 18:43. Показов 6900. Ответов 61
Метки нет (Все метки)
Всем привет!
Из книги Р. Лафоре относительно спецификатора доступа protected:
0
|
|||
| 09.07.2015, 18:43 | |
|
Ответы с готовыми решениями:
61
Ошибка доступа access violation: почему класс-наследник не видит protected данные-члены класса-родителя? Пишем свой чекер Пишем свой OPC-server |
|
|
||
| 10.07.2015, 14:52 | ||
|
Если же вы допустите некорректный ввод, то вы получите не предвиденные последствия (вообще это как бы банально и ежу понятно) которые вы потом уже никак не отловите и не обнаружите и в этом нет ничего хорошего.
0
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 10.07.2015, 14:58 | ||
|
PS где-то я уверен, что передаю верные данные. Где-то не уверен. И здесь правильный подход - проверять корректность в использующей класс части только там, где нужно. Этим и будут сохраняться инварианты класса и избегаться UB. А в классе оставить только ассерты и не пытаться сохранить инварианты любой ценой.
0
|
||
|
|
||||||||
| 10.07.2015, 15:03 | ||||||||
|
К примеру
1. from - задано невалидным 2. to - задано невалидным 3. daysBetween() работает не верно. Добавлено через 3 минуты
0
|
||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 10.07.2015, 15:12 | ||||
|
Добавлено через 3 минуты Совсем хорошо, если еще негативные тесты есть.
0
|
||||
|
|
|||
| 10.07.2015, 15:20 | |||
|
Добавлено через 2 минуты Класс должен отвечать за то что ему поручают, т.е за то с чем его ассоциируют, Класс "дата" не должен хранить класс "строку" ( как в моем примере: from.setDate(" .... "); ) он должен хранить именно дату, а не что иное.
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 10.07.2015, 15:23 | |
|
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 10.07.2015, 15:33 | ||||
|
Добавлено через 3 минуты
0
|
||||
|
|
||||
| 10.07.2015, 15:42 | ||||
|
Добавлено через 1 минуту Добавлено через 56 секунд UB на то UB а не гарантированое повидение. Если вы изначально UB приравниваете/(включаете) к гарантированному поведению то грош вам цена как программисту. Понятно что есть некоторые упущения и "люфты" которые могут привести к UB при использовании библиотеки, но тем не менее не на каждом же шагу.
1
|
||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 10.07.2015, 15:46 | |||
Может с итераторов начнешь? А то класс итератора при разыменовании не проверяет, конечный он или нет. Там UB получается. Ну так как?Добавлено через 1 минуту
0
|
|||
|
|
||
| 10.07.2015, 15:49 | ||
|
А при чем тут дока? Если кривая библиотека, то и получишь документацию к кривой библиотеке не более.
С таким же успехом можно было уже и назвать std::pair<> в котором члены класса открыты. Вы ведь сами изначально привели пример с датой изначально так?
0
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 10.07.2015, 16:05 | |||
|
Добавлено через 5 минут PS Хочешь пользоваться микроволновкой, которая всегда перед нагревом целую минуту проверяет, положил ты туда еду или еще что?
0
|
|||
|
|
|||
| 10.07.2015, 16:19 | |||
|
Добавлено через 4 минуты
0
|
|||
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||
| 10.07.2015, 16:28 | ||
|
0
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 10.07.2015, 16:34 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
|
|||||
| 10.07.2015, 17:06 | |||||
|
С таким подходом все можно довести до абсурда. В любом случае это лучше чем так позволяет работать с открытой дверцей, нарушая TБ. Я не говорил что нужно доводить все до абсурда и пихать проверки куда не нужно.
0
|
|||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 10.07.2015, 17:36 | ||
|
Avazart, вернемся к теме.
Чел написал всем известную книгу: http://www.amazon.com/Large-Sc... 0201633620 http://stackoverflow.com/quest... are-design Его слова с аннотации к выступлению на CppCon14 (выделения мои):
0
|
||
|
|
|||||
| 11.07.2015, 01:59 | |||||
|
Вопрос в том что ставить во главе безопасность или скорость, как по мне в большинстве случаем ставится во главе именно безопастность. С другой стороны спецификой именно С++ также являестся и эффективность/скорость. В общем баланс никто не отменял.
В любом случае пользователю желательно предоставить безопастную библиоткеку точнее сказать библиотеку с безопасным видом/интерфейсом, в нутри которая конечно может содержать самые разные оптимизации от си кода до асм вставок. То что допустим STL не делает какие либо проверки и больший перевес в сторону скорости, так это "основопологающая" либа собственно которой отдельное место стандарте и посвещена не одна книга. Т.е готовы ли вы писать талмуды и "учить" людей как правильно использовать вашу библиотеку, вводить свои термины и понятия специфические для вашей либы? Нужна ли вам настолько производительность? Добавлено через 9 минут Не по теме:
Добавлено через 16 минут
http://bookscafe.net/read/satt... idp1948512
0
|
|||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 11.07.2015, 02:52 | ||||
|
0
|
||||
|
|
||||
| 11.07.2015, 03:00 | ||||
|
Разве всякие ассерты не являются проверками? Как в принципе и работа с массивами через указатели.
0
|
||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 11.07.2015, 03:12 | ||||
|
0
|
||||
| 11.07.2015, 03:12 | |
|
пишем свой троян с нуля
Пишем свой первый Windows-драйвер Пишем свой интерпретатор языка BASIC Спецификатор доступа и виртуальные функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|