Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 23
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Двунаправленный динамический список на Delphi + Блок схемы
Моделирование работы класса персональных компьютеров на GPSS + Отчет + Б...
Выбор наилучших альтернатив с использованием методов оптимизации на Delp...

Вызов функции poor
Вызов функции poor(s1,10) носит более коварный характер. Он использует “магическую константу”, поэтому сразу возникает подозрение, что могут возникнуть проблемы при сопровождении программы, но это более глубокая проблема.

Единственная причина, по которой использование массива объектов класса Polygon сразу не привело к проблемам, которые мы обнаружили при использовании объектов класса Circle, заключается в том, что класс Polygon не добавляет члены класса к базовому классу Shape (в отличие от класса Circle), т.е. выполняется условие sizeof(Shape)==sizeof(Polygon) и — говоря более общо — класс Polygon имеет ту же самую схему распределения памяти, что и класс Shape. Иначе говоря, нам просто повезло, так как небольшое изменение определения класса Polygon приведет программу к краху. Итак, вызов poor(s1,10) работает, но его ошибка похожа на мину замедленного действия. Этот код категорически нельзя назвать качественным.


Также вам может показаться, что такая тема как http://remking.ru/remont-stiralnyh-mashin-v-malahovke-kraskovo-tomilino никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт remking.ru
Тема ремонт стиральных машин в красково там представлена весьма широко. На том сайте можно узнать много интересного на тему ремонт стиральных машин в красково
Что означает вообще тема ремонт стиральных машин в красково, где найти тему ремонт стиральных машин в красково - про это написано на сайте remking.ru
Это очень важная для многих людей тема - ремонт стиральных машин в красково Спасибо сайту remking.ru за информацию на тему ремонт стиральных машин в красково

То, с чем мы столкнулись, является основанием для формулировки универсального правила, согласно которому из утверждения “класс D — это разновидность класс в” не следует, что “класс Container — это разновидность класса Container^^’. Рассмотрим пример. class Circle : public Shape { /* . . . */ };
void fv(vector&); void f(Shape &);
void g(vector& vd, Circle & d)
{
f(d); // OK: неявное преобразование класса Circ1e в класс Shape
fv(vd); // ошибка: нет преобразования из класса vector // в класс vector
}
Хорошо, интерфейс функции poor() очень плох, но можно ли рассматривать этот код с точки зрения встроенной системы; иначе говоря, следует ли беспокоиться о таких проблемах в приложениях, для которых важным является безопасность или производительность? Можем ли мы объявить этот код опасным при программировании обычных систем и просто сказать им: “Не делайте так”. Многие современные встроенные системы основаны на графическом пользовательском интерфейсе, который практически всегда организован в соответствии с принципами объектно-ориентированного программирования. К таким примерам относятся пользовательский интерфейс устройств iPod, интерфейсы некоторых мобильных телефонов и дисплеи операторов в системах управления полетами. Кроме того, контроллеры аналогичных устройств (например, множество электромоторов) образуют классические иерархии классов. Другими словами, этот вид кода — и, в частности, данный вид объявлений функции — вызывает особые опасения. Нам нужен более безопасный способ передачи информации о коллекциях данных, который не порождал бы значительных проблем.
Итак, мы не хотим передавать функциям встроенные массивы с помощью ^=1 указателей и размера массива. Чем это заменить? Проще всего передать ссылку на контейнер, например, на объект класса vector. Проблема, которая возникла в связи с интерфейсом функции
void poor(Shape* p, int sz);
исчезает при использовании функции
void general(vector&);
Если вы программируете систему, в которой допускаются объекты класса std::vector (или его эквиваленты), то просто последовательно используйте в интерфейсах класс vector (или его эквиваленты) и никогда не передавайте встроенный массив с помощью указателя и количества элементов.

Если вы не можете ограничиться использованием класса vector или его эквивалентов, то оказываетесь на территории, где не бывает простых решений, — даже несмотря на то, что использование класса (Array_ref) вполне очевидно.
Опубликовал katy April 26 2015 07:27:59 · 0 Комментариев · 2509 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Самоучитель C++
Borland C++Builde...
CoolDev TipsSyste...
FreeSMS v1.3.1
Printgrid
iComm v.6.1 - выв...
ADVstatusbar
CoolHints2k v1.03
TMS
iChat v.7.0 Final...
RSS Feeds
EMS QuickExport S...
Программирование ...
ZipTV
БД студентов
Отключение и вклю...
Создание Web-сайт...
Fig [Исходник на ...
Изучаем Ассемблер
Доступа к БД Fire...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97839
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14193
Borland Delphi ... 10293
Turbo Pascal fo... 7374
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Формирование струк...
Минимальная программа
Другие типы вращен...
МЕТАФИЗИКА И КОСМ...
Создание имитацион...
Сохранение файла T...
Бесплатные игровые...
Объекту DataAdapte...
Теперь давайте пос...
Задача. Матрица
лао Защита данных ...
Record variable ex...
Обработка щелчков ...
Назначение класса ...
USING (ИСПОЛЬЗОВАТ...
Что такое конфигур...
Модуль явного инст...
Итератор в програм...
Increase Quotas (У...
Успешная проверка
14.6. Задачи
Предикат, вычисляю...
Типизация перемен...
Программирование: ...
Безопасность сети ...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?