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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi >> C++, Переход 
:(
    Опции темы
SergeCpp
Дата 5.12.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

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



Цитата(MAKCim @  5.12.2006,  23:11 Найти цитируемый пост)
в С++ конструктор родителя в любом случае вызовется неявно

Код
class base 
{
private:
  int   num1;
  char* text;

public:
  base( int n1, char* t ) {num1 = n1; text = t; } // no default constructor, all arguments must be supplied
};

class derived : public base 
{
public:
  derived ( int n, char* t ) : base( n, t ) {}   // pass arguments to a base class 
};

PM MAIL WWW ICQ   Вверх
nickless
Дата 5.12.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


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

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



Цитата(MAKCim @ 5.12.2006,  20:40)
не вызовешь
точнее вызовешь, но в списке инициализации

Я это и имел ввиду 


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
MAKCim
Дата 5.12.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



SergeCpp
читай
Цитата

точнее вызовешь, но в списке инициализации

изначально я думал, что речь идет о множественном вызове конструкторов (т. е предотвращение дублирования кода, когда последовательно вызываются перегруженные конструкторы), чего в С++ нет


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


Амеба
Group Icon


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

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



Цитата(MAKCim @  5.12.2006,  21:11 Найти цитируемый пост)
Т. е если 
Цитата

это все лишь шаг вперед по сравнению с С++

то как можно
Цитата

у меня совершенно нет никакого желания делать шаг назад и долго задерживаться в программировании на С++


Сейчас я пишу для Win CE. Просто нет другого компилятора + использую внутренние библиотеки. Т.е. просто нет выхода smile 

Цитата(nickless @  5.12.2006,  21:18 Найти цитируемый пост)
Выражение "шаг вперёд" не многим лучше  smile 
Специализированный инструмент для того и создан, чтобы быть удобнее в своей области, но называть такую специализацию прогрессом имхо не правильно.


Не надо мешать все в кучу.  Речь шла о том, что повышение уровня абстракции есть шаг вперед. 
Специализация языков это уже другой вопрос. Критикуйте первое утверждение!

Добавлено @ 11:45 
Цитата(alexeis1 @  5.12.2006,  18:51 Найти цитируемый пост)
  Именно абстракция (не только в смысле абстрактных классов но вообще), источник той самой простоты. Что ни говори С++ простым языком не назавешь. Конечно это все лишь шаг вперед по сравнению с С++, но все же у меня совершенно


Четко же было сказанно! Как вам удалось сюда приписать универсальность?


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

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

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

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



[offtop]
Извиняюсь, что не в тему (Delphi>>C++), такие языки, как например Python, Ruby -- имеют гораздо больший уровень абстракции, нежели Delphi, и следуя логике товарищей просто необходим дальнейший переход...

И хотелось бы уточнить, что товарищи понимают под более высоким уровнем абстракции? если абстрагирование от машинной реализации -- то почему вы тогда еще не перешли с Object Pascal на какой-либо язык декларативного программирования?
(вопрос не к skyboy smile )
[/offtop]


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Alexeis
Дата 6.12.2006, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(Artemios @  6.12.2006,  14:13 Найти цитируемый пост)
такие языки, как например Python, Ruby -- имеют гораздо больший уровень абстракции, нежели Delphi, и следуя логике товарищей просто необходим дальнейший переход...

 Ага если понадобится интенсивно программировать БД, и дадут время для переучится, то конечно!

Цитата(Artemios @  6.12.2006,  14:13 Найти цитируемый пост)
абстрагирование от машинной реализации -- то почему вы тогда еще не перешли с Object Pascal на какой-либо язык декларативного программирования?

 Насколько я понимаю для работы таких языков еще нет серьезной базы, так что это пока дело будущего. А программировать надо сейчас на том что имеется. Вот когда доведут это дело до ума (если доведут), то тогда и поговорим.


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

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

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


неОпытный
****


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

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



Цитата(alexeis1 @  6.12.2006,  14:13 Найти цитируемый пост)
Насколько я понимаю для работы таких языков еще нет серьезной базы, так что это пока дело будущего.

ну, как тебе сказать... Под платформу .NET существует немало "самописных" трансляторов(в основном - на C#) для разных языков: и Пролог, и Лисп(кста, в комплекте с VisualStudio в папке с примерами лежит небольшой транслятор-компилятор ЛИСПа, а в разделе research у Microsoft есть загрузка компилятора функционального языка F#), и несколько других разных... Так что, это скорее дело настоящего... Вот "самостоятельных" разработок действительно не так уж и много - как-то проще транслятор написать в ЯВУ, нежели в ассемблер, но и такое встречается(например, VisualProlog, не имеющий никакого отношения к Microsoft, и EZYProlog позволяют писать GUI-приложения под Windows).

Это сообщение отредактировал(а) skyboy - 6.12.2006, 15:32
PM MAIL   Вверх
Romikgy
Дата 6.12.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Artemios @  6.12.2006,  13:13 Найти цитируемый пост)
то почему вы тогда еще не перешли с Object Pascal на какой-либо язык декларативного программирования?

предложи!
Цитата(Artemios @  6.12.2006,  13:13 Найти цитируемый пост)
такие языки, как например Python, Ruby -- имеют гораздо больший уровень абстракции, нежели Delphi, и следуя логике товарищей просто необходим дальнейший переход...

область применения питона и руби имхо не всегда применима везде, чисто мое имхо,
а вообще в этой теме это точно оффтоп!!!!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Void
Дата 6.12.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(skyboy @  6.12.2006,  17:31 Найти цитируемый пост)
Вот "самостоятельных" разработок действительно не так уж и много

Разнообразные декларативные языки замечательно существовали задолго до .NET и JVM, так что тут проблем особых нет. Лучшие компиляторы ML и Haskell как раз управляемые среды не используют (хотя тот же Simon P. J. сам работает в MS research). Проблема в основном в мозгах разработчиков (не все хотят и могут преодолеть ломку при добавлении к процедурном или ОО-стилю функциональщины, метапрограммирования и т.п.) и, частично как следствие предыдущего факта, отсутствие такого разнообразия библиотек, как для «традиционных» языков. А с теоретической базой у декларативных языков всё замечательно.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
skyboy
Дата 6.12.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



Цитата(Void @  6.12.2006,  16:32 Найти цитируемый пост)
Разнообразные декларативные языки замечательно существовали задолго до .NET и JVM, так что тут проблем особых нет

я знаю о них. чесно-чесно. просто когда есть возможность сочетать в одной программе код, написанный на императивном и декларативном языке и при этом не возникает проблем, как раз можно решить ситуацию, когда имеется в наличии 
Цитата(Void @  6.12.2006,  16:32 Найти цитируемый пост)
отсутствие такого разнообразия библиотек, как для «традиционных» языков
. Как где-то на форуме слышал: "пишу перебор на Прологе в dll, а потом клепаю GUI на C#" smile Отдельные же компиляторы(по крайней мере, многие - может я не с теми сталкивался?) не компилят dll или ещё какой вид библиотек - сразу ЕХЕ. а GUI на том же lisp'e писать проблематично - все же событийная модель в той же Windows не предполагает, что "вся программа - одна большая функция". Впрочем, может я не со всеми аспектами функционального программирования знаком?

Добавлено @ 17:56 
вот подумалось: а тот же Пролог отлично приспособлен к сообщениям системы:
Код

onmessage(message(type(WM_CLOSE),_)):-Window.Close(). % закрытие удалось
onmessage(message(type(WM_CLOSE),_)):-Application.Terminate("Не удалось закрыть окно"). % при неудавшейся попытке закрыть окно выдаем сообщение и аварийно завершаемся :)
onmessage(message(type(WM_PAINT),Context)):-Context.DrawLine(5,5,6,6).

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

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



Цитата(alexeis1 @  6.12.2006,  15:13 Найти цитируемый пост)
Ага если понадобится интенсивно программировать БД, и дадут время для переучится, то конечно!

Не стоит думать, что Питон, например, только с БД замечательно справляется.
Цитата(alexeis1 @  6.12.2006,  15:13 Найти цитируемый пост)
А программировать надо сейчас на том что имеется

имеется многое.

А теперь, к чему я вообще задавал вопрос. Разговор зашел об уровнях абстракции. Сии уровни располагаются, как я понимаю, на линии между ориентацией на машину с одного конца, и ориентацией на контекст конкретной предметной области, для которой решается задача, с другого конца. Шаг к более высокому уровню абстракции -- это конечно же шаг вперед, НО (!) только когда нет зависимости от машинных ресурсов. В реальных же условиях получается, чем выше абстракция, тем более ресурсоемко решение задачи в терминах данной абстракции. Но на программирование этого решения затрачивается меньше человеческого ресурса (сравним размер моей подписи с размером реализации алгоритма быстрой сортировки в любом классическом императивном языке).

Таким образом, говоря о некоторой прогрессивной по отношению к чему-либо абстракции (если таковая, конечно, имеется), нужно сразу же делать ряд оговорок: человеческая ресурсоемкость построения программы; машинная ресурсоемкость выполнения программы. И исходя уже из конкретной решаемой задачи и указанных оговорок решать, шаг ли это вперед или назад.


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Alexeis
Дата 7.12.2006, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(Artemios @  6.12.2006,  21:56 Найти цитируемый пост)
Шаг к более высокому уровню абстракции -- это конечно же шаг вперед, НО (!) только когда нет зависимости от машинных ресурсов. В реальных же условиях получается, чем выше абстракция, тем более ресурсоемко решение задачи в терминах данной абстракции. Но на программирование этого решения затрачивается меньше человеческого ресурса (сравним размер моей подписи с размером реализации алгоритма быстрой сортировки в любом классическом императивном языке).


 Это все проблемы несовершенства сред разработки и компиляторов. Если достигнут отставания по скорости от ассемблера порядка 10% и будет достаточно функциональная библиотека, то уже ни кто не посмотрит в сторону классических языков. Я же говорю, что это пока что дело будущего. Пока, не преодолеют все эти трудности толку будет мало! Но за этим будущее.


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

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

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

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



Цитата(alexeis1 @  7.12.2006,  01:45 Найти цитируемый пост)
Если достигнут отставания по скорости от ассемблера порядка 10%

То есть вся линейка последовательных абстракций от ассемблера до того же Пролога например будет размещаться на интервале от 100% до 90%?
smile

Это сообщение отредактировал(а) Artemios - 7.12.2006, 03:31


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
MAKCim
Дата 7.12.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Да, всеохватывающая тема, сейчас по всему пробежимся  smile 
Цитата

Шаг к более высокому уровню абстракции -- это конечно же шаг вперед, НО (!) только когда нет зависимости от машинных ресурсов. В реальных же условиях получается, чем выше абстракция, тем более ресурсоемко решение задачи в терминах данной абстракции

в этом отношении как раз и хорош С++: абстракций хоть отбавляй при довольно приличной (даже хорошей) кодогенерации (чего стоит один boost разрулить)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Амортизатор2
Дата 7.12.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Artemios @  6.12.2006,  21:56 Найти цитируемый пост)
А теперь, к чему я вообще задавал вопрос. Разговор зашел об уровнях абстракции. Сии уровни располагаются, как я понимаю, на линии между ориентацией на машину с одного конца, и ориентацией на контекст конкретной предметной области, для которой решается задача, с другого конца. Шаг к более высокому уровню абстракции -- это конечно же шаг вперед, НО (!) только когда нет зависимости от машинных ресурсов. В реальных же условиях получается, чем выше абстракция, тем более ресурсоемко решение задачи в терминах данной абстракции. Но на программирование этого решения затрачивается меньше человеческого ресурса (сравним размер моей подписи с размером реализации алгоритма быстрой сортировки в любом классическом императивном языке).


С++ - безусловно, великий язык. Он велик своей универсальностью, на нем можно решать диаметрально противоположные задачи, пусть зачастую и не так комфортно, как на более специализированном языке, но достаточно эффективно. Предоставляя, с одной стороны, предельно низкоуровневые возможности, которые  идеально подходят для решения задач системного программирования, он допускает и более высокоуровневый подход, годящийся для широкого круга прикладных задач, в т ч таких специфичных, как программирование ИИ. Но, увы, в этой универсальности кроется сильная зависимость от соотношения между уровнем абстракции и вычислительными ресурсами, которые необходимы для реализации данного уровня абстракции. Одним словом, сегодня, когда "космические корабли бороздят просторы Вселенной", то бишь стандартом для рабочей станции является зверь-машина с двухъядерным процом и гигабайтом оперативы на борту, эффективность использования языка С++ для решения болшинства прикладных задач уже находится под вопросом. Это - реальность, и не признавать это сегодня нельзя.
Что произойдет с этим языком в дальнейшем? Будет ли его уделом исключительно системное программрование, откуда его точно никто вытеснить не сможет, пока жива архитектура фон-Неймана? Трудно сказать. Многое зависит и от следующих редакций стандарта. Страуструп и Ко, безусловно, просто так не сдадут этот язык. Уже обсуждалась возможность введения в стандарт сборщика мусора (если и не реализации, то по крайней мере ее спецификации). Большие надежды на комитет boost.

Цитата(skyboy @  6.12.2006,  17:53 Найти цитируемый пост)
а GUI на том же lisp'e писать проблематично - все же событийная модель в той же Windows не предполагает, что "вся программа - одна большая функция". Впрочем, может я не со всеми аспектами функционального программирования знаком?


Lisp - в той же мере императивный язык, насколько и функциональный. ООП в современных реализациях Lisp'a поддерживается лучше, чем в С++ и приближается к Smalltalk. Например, там есть мультиметоды, для реализации которых в C++ (и не только) придумали целый паттерн. И никаких dynamic_cast и instance of не нужно smile. GUI писать на лиспе тяжелее не из-за того, что язык не предоставляет какой-либо возможности, это следствие высокоуровневости языка. 
Кстати, GUI на лиспе делается с помощью биндингов GTK, WxWidgets, Swing и пр. без особых проблем.


Это сообщение отредактировал(а) Амортизатор2 - 7.12.2006, 22:23
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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