Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переменные-члены класса как проблема ООП 
:(
    Опции темы
Arantir
Дата 22.5.2013, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 1
Всего: 55



Я не отрицаю возможности ошибок. Я не отрицаю возможности непредсказуемого поведения программы.
Я лишь отрицаю верность утверждения, на котором основана эта тема. Утверждения о том, что это является проблемой, порожденной ООП.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
iipetrov
Дата 22.5.2013, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.5.2013

Репутация: нет
Всего: нет



Цитата(Arantir @ 22.5.2013,  00:07)
Я не отрицаю возможности ошибок. Я не отрицаю возможности непредсказуемого поведения программы.
Я лишь отрицаю верность утверждения, на котором основана эта тема. Утверждения о том, что это является проблемой, порожденной ООП.

В программах без ООП те же проблемы могут вызвать глобальные переменные. Но их как правило стараются избегать. 
В классах же данные есть почти всегда. Поэтому описанная проблема больше относится к именно ОО подходу.
PM MAIL   Вверх
Alexeis
Дата 22.5.2013, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(Arantir @  22.5.2013,  00:40 Найти цитируемый пост)
Вы искривляете смысл цитаты. Ошибка, как человеческий фактор, уже не зависит от того ООП это или не ООП, или вообще ли это программирование. При любой ручной работе такие ошибки обязательно когда-то возникают.

  Зависит к сожалению. Есть другой момент, что во многих случаях без применения ООП ошибок было бы  гораздо больше, но из этого не следует, что ООП это священная молитва программиста. 

Цитата(Arantir @  22.5.2013,  00:40 Найти цитируемый пост)
ООП позволяет создавать полностью корректные программы любого размера и масштаба. Проблема ошибок — это проблема человеческого восприятия мира, а не принципов ООП.

  Не позволяет. ООП ничего не говорит о том как правильно писать программы. Не говорит о том как их проектировать. ООП лишь описывает проектирование определенной модели. Программы любого размера и масштаба создают опытные программисты с опытом проектирования программ. ООП не говорит сколько объектов должно быть в программе, какие сущности должны описываться объектами, не говорит какие отношения между ними. ООП это лишь совет программисту - строй дом (программу) из кирпичей в форме прямоугольного параллелепипеда. Это хороший совет, но дома из кирпича имеют свои плюсы и минусы именно потому, что они из кирпича, а не потому что стены клали криворукие каменщики. И кирпичные стены будут иметь дефекты типичные для кирпичных стен.

Вообще, ТС, конечно, троль. Чую он нарыл описалово преимущества ФП по отношению к императивным языкам и вборсил в форум ярых императивщиков. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Arantir
Дата 22.5.2013, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 1
Всего: 55



Цитата(iipetrov @  21.5.2013,  23:22 Найти цитируемый пост)
В программах без ООП те же проблемы могут вызвать глобальные переменные. Но их как правило стараются избегать. 

У меня в голове не вмещаются одновременно 2 вещи: Ваши, как Вы пытаетесь показать, "глубокие" познания в этой сфере и факт существования этой темы. Кажется, что просто не существует ответа, который Вы бы хотели тут увидеть...

Добавлено через 9 минут и 43 секунды
Цитата(Alexeis @  21.5.2013,  23:42 Найти цитируемый пост)
Не позволяет. ООП ничего не говорит о том как правильно писать программы.

То есть"говорит о том как" и "позволяет" — это одно и то же? Зачем просто придираться к словам?
Я перефразирую: с помощью (используя) ООП возможно создавать полностью корректные программы любого размера и масштаба. Большие программы без ошибок никаким принципам ООП не противоречат.
Дело в контроле и тестировании. При строительстве самолета уделяется огромное количество средств на контроль качества на всех уровнях производства. Если бы самолет строили столько же человек и с аналогичными возможностями, сколько в среднестатистической разработческой группе программистов, то ошибок в этом самолете было бы не меньше, чем в программах.



--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Alexeis
Дата 22.5.2013, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(Arantir @  22.5.2013,  01:51 Найти цитируемый пост)
То есть"говорит о том как" и "позволяет" — это одно и то же? Зачем просто придираться к словам?

  Я не придираюсь к словам, я расставляю акценты. Ключевая мысль в том, что масштабируемые программы работают благодаря опыту проектирования и знаниям в первую очередь. При этом может использоваться кирпич (объект) как основной материал. Т.е. не объект панацея, а именно опыт и знания. Если, к примеру, вам дать n-е количество машин кирпичей и сказать стройте дом. Я не думаю, что получиться что-то хорошее. Хотя у вас неплохой инструмент кирпич, из которого построены много домов разной величины. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
math64
Дата 22.5.2013, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Локальные переменные могут создавать те же проблемы:
Код

void f() {
A* a = new A();
int x = a->getX(); // Для оптимизации запомним x
...


if (x == 0) // вместо if (a->getX() == 0)
   ...
}

Так что это проблема не ООП.
PM   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1097 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.