Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.79.70] |
|
Страницы: (4) [1] 2 3 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Посты Зачем люди пишут на чистом С ? и Приведение типов подтолкнули на создание темы.
Высказывайтесь |
Сообщ.
#2
,
|
|
|
С - когда программа модульная, С++ - для программы с классами
А вообще, в С++ много замечаельных нововведений - хотя бы new и delete, значительно лучше чем malloc() и free(). А также стандартная библиотека - она ведь основана на классах! |
Сообщ.
#3
,
|
|
|
Цитата С - когда программа модульная, С++ - для программы с классами Я не уверен в таком разделении . |
Сообщ.
#4
,
|
|
|
BugHunter, почему?
|
Сообщ.
#5
,
|
|
|
Цитата А вообще, в С++ много замечаельных нововведений - хотя бы new и delete, значительно лучше чем malloc() и free(). А также стандартная библиотека - она ведь основана на классах! Сомнительный плюс. Когда парадигму толкают не разобравшись, потом бывают проблемы. |
Сообщ.
#6
,
|
|
|
Цитата Ho Im @ Сомнительный плюс. Когда парадигму толкают не разобравшись, потом бывают проблемы. Подробнее, плз... |
Сообщ.
#7
,
|
|
|
Цитата Alexander RUS @ BugHunter, почему? Если я в своей (простенькой) программе использую шаблонные классы vector<> и т.п. (которые писал не я) - считается ли это программа программой с классами? Если я разбиваю программу на С++ на несколько длл-ек - она перестаёт быть модульной от того, что написана на С++ ? Вообще то практика показывает, что любой большой проект лучше бить на модули. Так и команде работать проще. Я бы сделал разделение по объёму. Если проект превышает ххх килострок, то его лучше переписать на С++. О велечине ххх идут споры, но она не очень велика. Цитата Когда парадигму толкают не разобравшись, потом бывают проблемы. Какую парадигму и кто толкал необоснованно? И самое главное, какие из этого возникли проблемы? Я знаю случаи, когда переходы с С->C++ и обратно позволяли успешно решить ряд текущих проблем. Правда переход с С++ на С менее часты. Ho Im, я вас умоляю, ваш фанатизм позволяет мне думать, что вы неправы. Почитайте Гегеля. А именно: всё что он пишет о диалектике. Отрезвляет, знаете ли. |
Сообщ.
#8
,
|
|
|
Я, как правило, о таком:
Цитата А вообще, в С++ много замечаельных нововведений - хотя бы new и delete, значительно лучше чем malloc() и free(). А также стандартная библиотека - она ведь основана на классах! Вот здесь я вижу почти что фанатизм. Лично не вижу преимуществ в том, что стандартная библиотека основана на классах. Чему-то это помогает, но панацеей от красных глаз не является. Как говаривал небезызвестный БГ, "некоторые вещи я могу спеть только на русском, некоторые -- только на английском". Напротив, неудачную процедурную модель еще можно переделать (с той же моделью данных), но неудачная ОО-модель... Упаси Аллах. Я понимаю, что менеджменту ужасно нравится -- до мурашек по спине -- когда им говорят, что аппликация реализуется "с классами". Но все-таки, стоит спуститься на землю, и признать, что, например, функциональный стиль в C++ -- это скорее костыль. А для ряда задач лучше него не сыщешь. То есть, это не есть плохо. Но явного превосходства в "библиотеке на классах" и "new и delete", по непонятно каким критериям "лучшим", нежели malloc(3) и free(3), я таки не вижу. Тем более, когда определенная парадигма навязывается языком -- это уже не плюс. И не ноль. Это минус. |
Сообщ.
#9
,
|
|
|
Цитата Ho Im @ Тем более, когда определенная парадигма навязывается языком -- это уже не плюс. И не ноль. Это минус. Ткни пальцем - в каком месте эта парадигма навязывается? Или ты хочешь сказать, что программируя на С++ я не могу использовать функциональный стиль? Тогда ты в корне неправ. Цитата Ho Im @ Лично не вижу преимуществ в том, что стандартная библиотека основана на классах. Приемущество хотя бы в обобщенности кода. Причем на разных уровнях - как на уровне самой библиотеки, так и на уровне ее использования. И не надо говорить о #define-ах. Шаблоны и дефайны - совершенно разные вещи. Даже рядом не стоят. При этом даже использование стандартной библиотеки не заставляет тебя проектировать собственный код с использованием классов. Теже самые шаблоны прекрасно работают с POD-типами. А свободные функции - они и в африке свободные функции. Итог - не хочешь программировать с использованием ОО-парадигмы - да сколько угодно. Языку и библиоеке это совершенно по барабану. Добавлено Цитата Ho Im @ "new и delete", по непонятно каким критериям "лучшим", нежели malloc(3) и free(3), я таки не вижу. Гм. Ну как бы так сказать... При использовании new тебе не надо явно указывать размер создаваемого объекта (это сделает сам компилятор), не надо явно вызывать функцию инициализации (компилятор сам вызовет подходящий конструктор). delete сам вызовет функцию деинициализации (деструктор). Ты можешь явно переопределить new и delete для конкретного типа (при этом клиенсткий код останется неизменным). Хочешь сказать, что при использовании malloc и free ты получаешь такой же сервис? |
Сообщ.
#10
,
|
|
|
Цитата Хочешь сказать, что при использовании malloc и free ты получаешь такой же сервис? Я получаю более легкий runtime, цепляющийся к программе, если эти вещи не нужны. Цитата Или ты хочешь сказать, что программируя на С++ я не могу использовать функциональный стиль? Да все можно. Вон на васике ось пишут... Но -- будет ли это удобно? |
Сообщ.
#11
,
|
|
|
+) используя new мы получаем очень удобный "откат назад" (Стандарт гарантирует, что всё вернётся взад) если вдруг при конструировании 4256 объекта вдруг что то сломалось. Это получается автоматом, без лишних телодвижений.
+) операторы new / delete удобно перегружаются для отдельных классов, если нас не устраивает стандартный менеджер памяти. +) такая вещь, как "типы данных, похожие на стандартные", для которых перегружены операторы +, -, *. Вообще мощь С++ складывается из 3 вещей. 1) перегрузка 2) шаблоны 3) наследование 4) namespaces 5) параметры по умолчанию: нет нужды переписывать переколбашивать весь проект, елси в функцию добавится параметр 6) более строгая типизация т.о. видно, что С++ лучше подходит для КРУПНЫХ проектов. Цитата Я получаю более легкий runtime, цепляющийся к программе, если эти вещи не нужны. ну, не нужны, так не нужны. в наше время скорость рантайма приносится в жертву лёгкости отладки и сопровождения. К тому же, если всё в порядке, то скорость не сильно хуже. |
Сообщ.
#12
,
|
|
|
Цитата Ho Im @ Я получаю более легкий runtime, цепляющийся к программе, если эти вещи не нужны. А что, в С++ malloc и free уже отменили? |
Сообщ.
#13
,
|
|
|
Цитата Flex Ferrum @ А что, в С++ malloc и free уже отменили? ДА нет! Это изжиток С... |
Сообщ.
#14
,
|
|
|
Вот, нашел интересное масло для огня:
Why C++ Sucks Why C++ Sucks Искал сходные материалы по C, не нашел. |
Сообщ.
#15
,
|
|
|
Цитата Искал сходные материалы по C, не нашел. 1) С не сакс, просто он немного... для другого. 2) С сакс потому что смотри мой пост от Вчера, 19:41 3) Категоричность статей позволяет мне думать, что авторы заблуждаются. называть кого то гадом, козлом и уродом - это значит, что все НОРМАЛЬНЫЕ аргументы уже иссякли. А это значит, что их нет. Ну нету в С адекватного ответа namespace-ам, шаблонам, и перегрузке. И это мы ещё не дошли до классов, операторов и т.п. полиморфизму! Я так понимаю, С не может быть саксом, потому что это часть С++. Ho Im - вашу бы энергию, да против Дельфи |