Форум программистов, компьютерный форум CyberForum.ru

Пишем свой класс, спецификатор доступа protected - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При вычитании целочисленного типа неправильно вычисляется http://www.cyberforum.ru/cpp-beginners/thread1496239.html
Доброго времени суток. Вычитаю два массива и записываю в новый массив. m=chisob-chikl; получаетя ,что 8-18=-96. Что не так?
C++ Замена элемента из множества Подскажите с оптимальным решением задачи. Имеется динамический vector элементов для подстановки. std:vector<std::string> letters_rep; letters_rep.push_back("r"); letters_rep.push_back("u"); letters_rep.push_back("z"); letters_rep.push_back("w"); http://www.cyberforum.ru/cpp-beginners/thread1496217.html
C++ Ассоциативный массив своими руками
Подскажите, пожалуйста, как реализовать такую конструкцию: array = 324;
C++ Stl vector как массив
Есть функция принимающая указатель на массив и его длину и копирующая его в другой массив определенный указателем. void SetMass(float *pMass, int plengthMass) { mMass = new float(plengthMass); lengthMass = plengthMass; memcpy(mMass,pMass,sizeof(float)*plengthMass); }
C++ Копирование при полиморфизме http://www.cyberforum.ru/cpp-beginners/thread1496190.html
Всем доброго дня ! Почему при полиморфизме вызывается конструктор копировщик только базового класса (строка 70) ? Получаю ошибку. Мне нужна полноценная копия. Заранее спасибо !!!
C++ Нужно перевести программу с Visual basic на с++ ... подробнее

Показать сообщение отдельно
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,800
Завершенные тесты: 1
10.07.2015, 06:15     Пишем свой класс, спецификатор доступа protected
Цитата Сообщение от ct0r Посмотреть сообщение
Отголоски закона дырявых абстракций.
что это за закон такой?

Цитата Сообщение от ct0r Посмотреть сообщение
Что такое инвариант - всем понятно. А вот что обозначает словосочетание "суть инварианта" - мне неведомо.
суть понятия.

Цитата Сообщение от ct0r Посмотреть сообщение
Далеко не всегда так названный "инвариантный компонент" - это хорошо. Все зависит от ситуации.
всегда хорошо, когда он есть.
но не всегда бывает оправданно затрачивать время на его обеспечение.
на практике, обычно, достаточно оградиться от случайных ошибок.

Цитата Сообщение от ct0r Посмотреть сообщение
невыполнение предусловий ведет к неопределенному поведению.
порочная практика.

я могу понять, что для иллюстрации каких то моментов,
хочется наоборот удалить всю обработку ошибок,
что бы не загромождать пример-иллюстрацию.

я могу понять, что при разработке прототипа,
ради скорости можно принебречь качеством

но на бою такого быть не должно.

Цитата Сообщение от ct0r Посмотреть сообщение
Не стоит думать за всех и во всех ситуациях стараться сохранить инварианты любой ценой.
всегда есть смысл подумать о себе любимом,
и о своих коллегах.
потому что, потом нам же это все разгребать.

ассерт проверки в релизе не кушают.
зато код читабельный,
и спать можно спокойно.

Цитата Сообщение от ct0r Посмотреть сообщение
Очень часто, чтобы не чесать правое ухо левой пяткой, при модульном тестировании нужные private-члены делаются public-членами с соответствующим комментарием, что, мол, это только для тестовых целей.
существует несколько техник на этот случай:

1.
уродливые имена функций, которые завершаются подчеркиванием.
(действует прицип привентивной защиты:
сделайте так, что бы использовать механизм неправильно было неудобно)

2.
препроцессор.
дефайн-паблик-морозов.


хотя лично я думаю,
что если у программиста есть такие проблемы,
значит он просто не умеет TDD.

если бы он сначала написал тест
(а значит, подумал, как он это все тестировать будет),
и только потом - реализацию тестируемого компонента,
то таких проблем у него изначально бы не возникло.

Цитата Сообщение от ct0r Посмотреть сообщение
Ну "никому ничего" - это уже преувеличение. Компоненты всегда будут что-то гарантировать при выполнении определенных предусловий.
видно вы действительно так и не поняли сути инварианта.

вдумайтесь в эту фразу:
способность гарантировать стабильность своей работы не зависимо от корректности вызывающей стороны.
 
Текущее время: 22:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru