Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 467 468 [469] 470 471 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#7021
,
|
|
|
|
Ну да. Но boost_foreach, qforeach и прочие существовали чуть ли не с сотворения мира Да, ты говорил, что в андроиде буста нет, но, во-первых, foreach там работать должен, а во-вторых его (буста) отсутствие говорит разве что об убогости андроидовского компилятора - под, например, ios, буст прекрасно может быть откомпилен. |
|
Сообщ.
#7022
,
|
|
|
|
Да. В старом стандарте нужно использовать typedef'ы и пр. вещи для организации работы с типами, BOOST_FOREACH(или просто std::for_each) вместо нового for и т.п. Но тоже вполне можно жить. Впрочем, сейчас все потихоньку переползают на новый стандарт, благо есть clang и gcc. |
|
Сообщ.
#7023
,
|
|
|
|
Цитата jack128 @ в плюсах не принято хоть сколько нибудь значительную логику в конструкторе, поэтому то что с точки зрения дельфиста должно быть в конструкторе, в плюсах -выносится в отдельный метод Вы читаете неправильные книги ![]() Цитата jack128 @ справедливости ради надо сказать, что массовое применение смартпоитеров первую проблему решает на корню. Идиома RAII вообще решает ![]() И слава Бьярну! |
|
Сообщ.
#7024
,
|
|
|
|
Цитата --Ins-- @ То, что существуют агрегированные и композитные объекты, которые не имеют смысла вне своего контейнера И? Как это коррелирует с написанием логики где то в промежутках между конструированием объекта? Цитата --Ins-- @ Расшифруй слово "толком" В дельфях после работы конструктора объект создан полностью, без всяких "толком" ![]() Да имелось ввиду, что ты его только создал, и уже пытаешься его куда то сохранить. У тебя ведь метод AfterConstruction является методом конструироваемого класса? Так смысл тогда писать код сохранения объекта гдето там в AfterConstruction ? Где логика? Почему ему не сделать метод SaveData например? Это же будет логичнее, чем когдя я увижу создание объекта в коде, и буду репу чесать, а в каком же месте он сохраняется... Если он только сцуко создался и все... |
|
Сообщ.
#7025
,
|
|
|
|
Цитата OpenGL @ а во-вторых его (буста) отсутствие говорит разве что об убогости андроидовского компилятора И что мне теперь делать? Ради мощности плюсов бросить программировать под самую популярную мобильную платформу, заклеймив позором Гугл? |
|
Сообщ.
#7026
,
|
|
|
|
Цитата --Ins-- @ Никто не запрещал сделать объект с точки зрения ООП отдельным типом и не перемешивать все в кучу Ты путаешься в терминах. Сделать объект типом... Что это вообще означает? У каждого объекта в С++ есть тип Цитата В контексте сказанного выше - мешать то никто не мешает Что у тебя там смешано? Так как мне в Delphi сделать так, чтобы объекты моего класса использовали подсчет ссылок? У вас же ссылки неявные, вы ничего с ними сделать не можете... |
|
Сообщ.
#7027
,
|
|
|
|
Цитата D_KEY @ Так как мне в Delphi сделать так, чтобы объекты моего класса использовали подсчет ссылок? Так это в TInterfacedObject сделано ведь. Для поддержки интерфейсов. |
|
Сообщ.
#7028
,
|
|
|
|
Цитата [S]mike @ И что мне теперь делать? Ради мощности плюсов бросить программировать под самую популярную мобильную платформу, заклеймив позором Гугл? Зачем? Я не агитирую за плюсы вообще-то, я говорю о несостоятельности твоих аргументов против них |
|
Сообщ.
#7029
,
|
|
|
|
Цитата [S]mike @ Цитата D_KEY @ Так как мне в Delphi сделать так, чтобы объекты моего класса использовали подсчет ссылок? Так это в TInterfacedObject сделано ведь. Для поддержки интерфейсов. Я знаю(обсуждали уже). А если у меня нет ссылки на интерфейс? Я к тому, что в языке без сборки мусора и т.п. вещей, делать неявные ссылки для "классовых типов" как-то бессмысленно. |
|
Сообщ.
#7030
,
|
|
|
|
Цитата OpenGL @ Зачем? Я не агитирую за плюсы вообще-то, я говорю о несостоятельности твоих аргументов против них Я не агитирую против плюсов как таковых, я говорю о том, что писать на них под Андроидом - геморройно. Другое дело готовый и оттестированный код спортировать. |
|
Сообщ.
#7031
,
|
|
|
|
Цитата [S]mike @ Ради мощности плюсов бросить программировать под самую популярную мобильную платформу, заклеймив позором Гугл? ![]() Каким позором? Там есть NDK и оно вполне себе развивается. Они как раз пришли к вполне прагматичной модели, сделав Java(ну или что-то другое, вроде Scala и пр.) по умолчанию и разрешив нативность для тех, кому это требуется. |
|
Сообщ.
#7032
,
|
|
|
|
Цитата KILLER @ Так смысл тогда писать код сохранения объекта гдето там в AfterConstruction ? Где логика? Почему ему не сделать метод SaveData например? Это же будет логичнее, чем когдя я увижу создание объекта в коде, и буду репу чесать, а в каком же месте он сохраняется... Если он только сцуко создался и все... Откуда ты вообще приплел сохранение? Я спрашивал про помещение в контейнер Цитата D_KEY @ В Java, например, рекомендуют(по крайней мере Эккель в Философии) как раз избегать вызова виртуальных методов в конструкторах, т.к. это приводит к проблемам и вызову метода для несконстрированного объекта. В Java как я понял нет возможности такую ситуацию разрулить. А в Delphi - есть Добавлено Извиняйте, надо работать... |
|
Сообщ.
#7033
,
|
|
|
|
Цитата [S]mike @ Я не агитирую против плюсов как таковых, я говорю о том, что писать на них под Андроидом - геморройно. Сложилось впечатление, что ты больше агитируешь за яву (и против плюсов), в отрыве от андорида Так-то понятно, что под него на яве разумнее писать. |
|
Сообщ.
#7034
,
|
|
|
|
Цитата --Ins-- @ Откуда ты вообще приплел сохранение? Я спрашивал про помещение в контейнер Я может быть на так понял, но: Цитата --Ins-- @ Например - как сделать так, чтобы сразу после конструирования класс или его потомок автоматически попадал в некое хранилище Под хранилищем ты имел ввиду контейнер, да? Ну ладно... Вот так пойдет? ![]() ![]() class Object { public: Object(int a) : data (a) { } void Print() { std::cout << "data is: " << data; } private: int data; }; int main() { std::vector<Object> vobj; //! Контейнер, хранилище, который будет хранить наши объекты. //! Конструируем и тут же кидаем в хранилище, как видишь фабрику городить не пришлось vobj.push_back(Object(5)); vobj[0].Print(); return 0; } А как ты сделаешь? Будешь хранить внутри своего объекта контейнер, в который этот же самый объект будет сохранен ? Или как? |
|
Сообщ.
#7035
,
|
|
|
|
Цитата --Ins-- @ В Java как я понял нет возможности такую ситуацию разрулить. А в Delphi - есть Для этого тебе придется лезть или хотя бы знать о внутренней реализации классов иерархии(потому что у вас именно внутренней реализацией определяется порядок вызова конструкторов). Так может лучше просто не создавать себе проблем, чтоб и разруливать не нужно было? Цитата Извиняйте, надо работать... За что тут извиняться-то ? А на вопросы по ссылкам ты бы ответил как-нибудь... Хочется выяснить до конца этот момент. |