![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
и не засирают стек ![]() ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
в самом деле? ну-ка ну-ка по-подробнее с этого места ![]() может, ты перепутал сьаьтческий буфер в секции данных со стеком? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
MAKCim |
|
||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
все "новшества" - это синтаксический сахар
гы за нас компилятор конечно же создаст деструкторы, которые будут уничтожать наши ресурсы... ![]() ![]() точно так же придется ручками писАть разница лишь в том, что в С функцию освобождения ресурсов надо вызывать вручную виртуальные функции реализованы точно также, как и t_generic->callback есть таблица ВФ, есть ее адрес в объекте, есть данные
никто и не вешает только факты, мой друг, только факты ![]() ![]()
вот именно, что никто себя не обманывает зачем выдавать за факт то, чего нет я уже давно сказал, что в С нет шаблонов а так ли они необходимы? ты уперся на своем, дескать шаблонов нет - и все, без них типа жить нельзя Добавлено через 11 минут и 12 секунд вся "прелесть" С++ в его т. н стандарте, которому до конца никто не следует а все почему, да потому что сложный он сидели бородатые дядьки, думали, думали и наконец придумали конечно, их дело маленькое, обкуриться и выдать а вы уж реализовывайте ![]() тот же boost - это мегатонны неудобночитаемого кода... попытка универсализировать шаблоны, показать всю их "мощь" дефайны по сравнению с этой кашей - это еще вполне удобноваримо ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||
|
|||||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Пока читал тему понаквотил целую кучу фраз. Когда доскроллил до формочки ответа понял, что на всё отвечать лень, поэтому просто выскажу своё мнение.
![]() Итак, С++ - объективно сложный и запутанный в современном состоянии. Это да. Библиотеки? Если говорим про прикладнуху, то Qt достаточно чтобы считать С++ круче ![]() По мне - так С хорош, но кое чего не хватает (неймспейсов, перегрузки функций, шаблонов или более навороченного препроцессора). Последнее впрочем решают внешнее утилиты. А будущее (в прикладном ПО) вообще за всякими питонами, шарпами, явами и пр. |
|||
|
||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
неа.
если при написании подобных макросов допустить ошибку, то придется долго блеваться. Потому что из-за \ компиялтор не сможет сказать на какой именно строке ошибка. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
UnrealMan |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 0 Всего: 32 |
Да ну? Поддержка RTTI, исключения, шаблоны - всё это синтаксический сахар? Что же тогда по-твоему не синтаксический сахар? Может, у тебя и библиотечные функции - синтаксический сахар? ![]()
Между прочим, компилятор C++ самостоятельно вызывает деструкторы для базовых подобъектов и нестатических членов-данных объекта. Для весомой части классов деструкторов, сгенерированных компилятором по умолчанию, вполне достаточно. А там, где недостаточно, мы всё равно избавляемся от необходимости явно уничтожать агрегированные объекты.
Только не надо забывать, что реализуем мы деструктор всего один раз, а вызываться он должен для всех создаваемых в программе объектов. Сложность слежения за тем, чтобы деструктор был вызван всюду, где это необходимо, часто превосходит сложность написания самого деструктора. Мсье выдаёт желаемое за действительное.
Без тёплого и уютного жилья тоже можно жить. Бомжи вон как-то живут. Не хочешь составить им компанию? Для тебя ведь уровень жизни, видимо, не важен? Шаблоны позволяют решать в общем виде задачи, которые без шаблонов полноценно в общем виде не решаются. Конечно, можно справиться с решением отдельных частных случаев задачи, но вот досада - это более затратно по времени. Решения в обход типобезопасности также затратны по времени - как прямо (за счёт необходимости отслеживания правильности преобразований), так и косвенно (за счёт практически неизбежно допускаемых ошибок, которые нуждаются во времени на их устранение). А кто, собственно, требует читать исходники Boost? ![]() |
||||||
|
|||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
но только это нихрена не работает, так как память освобождается в самом аллокаторе ![]() Это сообщение отредактировал(а) Lazin - 2.10.2008, 14:53 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Насчёт аллокатора - если написать аллокатор, юзающий salloc - разве не то получится?
|
|||
|
||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: нет Всего: 14 |
вы немного растекаетесь мыслею по древу. Аргументов невозможности обеспечить безопасность типов и невозможности создания неконфликтующих библиотек на основе макросов - вполне достаточно, что-бы коммерческий программист отдал предпочтение C++.
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
С++ в этом плане не настолько уж и крут (не-не - разница есть, но не надо преувеличивать). |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
сразу видно, на С ты не программировал ![]() нет ничего сложного есть объект A, есть функция для его создания и уничтожения есть функция, использующая A в ней есть блок завершения, в котором идет вызов функции уничтожения переход на блок завершения идет через goto блоков завершения может быть несколько, в зависимости от числа типов создаваемых объектов располагаются последовательно в обратном созданию порядке любая функция строится по такому правилу в итоге нет ни утечек, ни сложностей для восприятия ![]()
аналогия в корне не верна
а почему ты решил, что я на этом акцентирую внимание? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: нет Всего: 14 |
я не преувеличиваю C++ оставляет ВОЗМОЖНОСТЬ эту безопасность обойти, но если вам эта возожность понадобилась - ищите ошибки в проектировании, а язык тут совершенно не при чем. Добавлено через 8 минут и 32 секунды Действительно, поразительно удобно ![]() Народ, он ИМХО над нами издевается ![]() кстати, а чтож вы на неудобные вопросы-то не отвечаете, а? |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
о вкусах не спорят сразу видно, что тут на С мало кто программировал ![]() давайте список, буду отвечать Добавлено через 10 минут и 41 секунду ничуть я сам был раньше фанатом С++ пока не понял, что он того не стОит Это сообщение отредактировал(а) MAKCim - 3.10.2008, 08:19 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Тогда Qt.
Вторая причина - в потенциальной кривости не программиста, а языка. Сравни C++ с Java. Только языки(не платформы). Т.е. считай, что в джаве есть указатели(естественно они deprecated) и она компилится в натив. Тебе не кажется, что тогда практически все бы выбрали Java(как и случилось с ентерпрайзом)?
Только вот этот "синтаксический сахар" очень удобен ;) P.S. До недавнего времени юзал C, теперь C++. Ибо Qt и классическое ООП(без него стало сложно). Ненавижу C++ за сложность(неоправданную). |
||||||
|
|||||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 0 Всего: 32 |
А ты что-нибудь посложнее Hello World на своём C программировал? Ну, надо же, как всё просто ![]() Предположим, у нас есть два ресурса: первый захватывается объектом x, второй - объектом y:
В случае неудачной попытки захватить какой-либо ресурс, либо неудачного отрабатывания метода use_resource надо выйти из функции f (освободив все захваченные ресурсы) и передать ошибку наверх. Перепиши этот код на C. Я так понял, ты теперь отказываешься от этого своего супер-аргумента "раз без шаблонов можно выжить, значит они не нужны"? ![]() А кто ж тебя знает, на чём ты там акцентировал внимание? Я всё-таки не телепат. Когда речь заходит о фанатах, я в первую очередь вспоминаю о том, что фанатизм, как и всякое помешательство, свидетельствует скорее о психических отклонениях у человека, нежели о том, что он грамотный специалист в своём деле. Вот если б ты сказал, что был профессиональным программистом C++ (а не каким-то там фанатом), то мог бы создать хоть какую-то иллюзию того, что так оно и было ![]() Я не знаю Java и сравнивать их не стану (ибо предпочитаю говорить только о том, в чём, как я считаю, достаточно хорошо разбираюсь). |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
2 Пользователей читают эту тему (2 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |