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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> С++ нарушает принципы ООП ? ф-я main 
:(
    Опции темы
ZZZkoderZZZ
Дата 11.3.2013, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Ф-я main всегда не является членом класса. Можно ли несмотря на это считать объектно-ориентированной программу на С++ ?
PM MAIL   Вверх
Dem_max
Дата 11.3.2013, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




Main это точка входа в программу, это не как не связано с ООП


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
ZZZkoderZZZ
Дата 11.3.2013, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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




Но в Java то main в классе.
PM MAIL   Вверх
Dem_max
Дата 11.3.2013, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




Наплевать, компилятор или интерпретатор все равно считает main точкой входа в программу и наплевать в каком она месте будет находиться. 


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
volatile
Дата 11.3.2013, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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




Цитата(ZZZkoderZZZ @  11.3.2013,  12:11 Найти цитируемый пост)
 С++ нарушает принципы ООП ?

А С++ это не обязательно ООП.
С++ шире.  smile 


PM MAIL   Вверх
Alexeis
Дата 11.3.2013, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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




ZZZkoderZZZ, а что такое объектно ориентированная программа? На этот счет существуют определения? 


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

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

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


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


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




ZZZkoderZZZ, вот вам пример на php:
Код

class Some 
{
    static function do()
    {
        echo 'Yeah!';
    }
}
Some::do();
Код

echo 'Yeah!';

А теперь скажите, объектно ориентирован ли PHP?
А можно еще на JavaScript привести пример для окончательного выноса мозга...

ООП — это инструмент разработки и проектирования. В некоторых случаях часть возможностей ООП можно создать даже там, где их нет в помине (например, в JavaScripts), просто искусственно, имеющимися средствами. Языками программирования он предоставляется как возможность, а не правило. Встроенные возможности ООП — это такой себе "ассемблерный фреймворк", то есть готовый оптимизированный под свои задачи функционал, которым вы можете пользоваться и вам его уже не надо реализовывать.
В принципе, почти на все можно найти компилятор, который выдаст вам результат работы одной введенной строки, без всяких там классов и main'ов.

Main внутри класса просто является более удобным решением для высокоуровневых языков, на подобии Java и C#. Это позволяет сразу использовать всякий там "нестрогий порядок объявления и определения" и т.п.

Это сообщение отредактировал(а) Arantir - 11.3.2013, 21:54


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


Шустрый
*


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




Еще одно нарушение ООП в С++ это то, что базовые типы не являются классами. Отсюда проблемы например с преобразованием в строку.
Т.е. нельзя написать вот так
Код

bool i;
string s=i.toString();

, в то время как на настоящем ООП-языке можно.


PM MAIL   Вверх
baldina
Дата 12.3.2013, 09:59 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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




Цитата(ZZZkoderZZZ @  11.3.2013,  12:13 Найти цитируемый пост)
Но в Java то main в классе. 

и это худшее, что смогли придумать разработчики Java. кстати, класс с одной статической функцией - это вообще не ооп.

Цитата(ZZZkoderZZZ @  12.3.2013,  09:14 Найти цитируемый пост)
нарушение ООП в С++

C++ не нарушает ООП, а поддерживает. в меру сил.

Цитата(ZZZkoderZZZ @  12.3.2013,  09:14 Найти цитируемый пост)
на настоящем ООП-языке

быстренько дайте определение "настоящего" ООП языка, и покончим на этом)))
PM MAIL   Вверх
Dem_max
Дата 12.3.2013, 10:06 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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




Мне кажется стоит все темы от ТС быстро в мусорку перекинуть как это сделали на Sources ru 
ТС пришел просто нас потролить, либо совсем нулёвый человек


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
kolesnle
Дата 6.4.2013, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упертый сишник
*


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




Код

friend ClassName;

Это точно нарушение ООП. 
Но вот видишь какой C++ мультипарадигмный - можно писать на ООП, модульном, процедурном, ООП не ООП и ООП на половину ООП , ООП на четверть ООП!!!  smile  Для чего вообще ООП нужен - для того чтобы облегчить жизнь разработчику. Если для этого надо нарушить его принципы - вперед!

Это сообщение отредактировал(а) kolesnle - 6.4.2013, 10:23
PM MAIL   Вверх
mes
Дата 7.4.2013, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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




Цитата(ZZZkoderZZZ @  12.3.2013,  08:14 Найти цитируемый пост)
Т.е. нельзя написать вот так

Код

bool i;
string s=i.toString();


, в то время как на настоящем ООП-языке можно.

 smile 

в то время как на С++ можно даже больше, а с to_string вообще не проблема: 
http://liveworkspace.org/code/1pFqVg$3

Добавлено через 1 минуту и 26 секунд
и объекты сделать из базовых типов на свой вкус для с++ совсем не проблема.. 



--------------------
PM MAIL WWW   Вверх
Arantir
Дата 7.4.2013, 03:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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




И слава богу, что нарушает. Ато кое-чего пришлось бы делать через универсальный интерфейс.


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


Упертый сишник
*


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




Цитата(baldina @  12.3.2013,  09:59 Найти цитируемый пост)
быстренько дайте определение "настоящего" ООП языка

Если определение ООП язык вообще что-то значит, оно значит, что язык представляет удобные возможности для программирования в ОО стиле(C++ - оно). А ZZZkoderZZZ думаю, понимает под этим языки, которые поддерживают только ООП( при том не факт, что они предоставляют удобные возможности), типа C# или Java.  
PM MAIL   Вверх
baldina
Дата 7.4.2013, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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




Цитата(kolesnle @  7.4.2013,  10:09 Найти цитируемый пост)
языки, которые поддерживают только ООП

не бывает таких языков, т.к. ООП определяет только статическую структуру. так что "чистый ООП" это язык определения БД. для программирования с результатом нужно действие, т.е. поддержка какой-либо "исполнительной" парадигмы - императивное, функциональное, логическое и пр. программирование
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


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

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


 




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


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

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