Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 330 331 [332] 333 334 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#4966
,
|
|
|
|
Цитата D_KEY @ Если ты не будешь отождествлять Top и Object, то это будет тоже самое(в рамках системы). Так, например, если я воспользуюсь библиотекой GObject и буду все свои "классы" создавать соответствующим образом, то буду иметь все тот же Object, хотя и без Top'а. никто их и не отождествляет, кроме тебя, Top -- это корневой тип, и в одних языках он есть (в виде, _например_ Object в Java, C#), в других -- нет. в некоторых есть эээ иллюзия его наличия? я про void*. чем с точки зрения системы типов является void*? кстати, в Delphi, емнип, тоже есть классы, соответствующие базовым типам (TInteger для Integer и т.п.). или не? Добавлено хорошо, так что ты скажешь по поводу квантификации? Добавлено Цитата D_KEY @ Нет, не кажется. Ибо относительная логичность наличия Object'а в чистых ОО-языках, связана не с ОО возможонстями и принципами, а с отсутствием других "видов типов". что-то не вижу логики, как из отсутствия других видов типов кроме классов следует наличие класса Object? |
|
Сообщ.
#4967
,
|
|
|
|
Цитата korvin @ никто их и не отождествляет, кроме тебя, Top -- это корневой тип, и в одних языках он есть (в виде, _например_ Object в Java, C#), в других -- нет. Вот в этом же предложении ты их и отождествил. Object - корневой класс любой иерархии в этих языках. Top'ом он не является. Цитата чем с точки зрения системы типов является void*? В терминах С/С++ - указатель на данные любого типа. А так ... эмм... корневым ссылочным типом. Как-то так. Цитата кстати, в Delphi, емнип, тоже есть классы, соответствующие базовым типам (TInteger для Integer и т.п.). или не? Даже если они есть, сами базовые типы не являются классами и наследником TObject. Цитата что-то не вижу логики, как из отсутствия других видов типов кроме классов следует наличие класса Object? Не наличие(оно так и остается необязательным), а его логичность, т.к. в этом случае ты не космическую иерархию классов делаешь, а обеспечиваешь Top для своей системы типов. |
|
Сообщ.
#4968
,
|
|
|
|
Цитата korvin @ хорошо, так что ты скажешь по поводу квантификации? А что вы хотите услышать? |
|
Сообщ.
#4969
,
|
|
|
|
Цитата korvin @ В C++ ничто не мешает завести классы CBoolean, CInteger и т.д. Перегрузка операторов в помощь. Равно как и CSuperBaseClass.хоть и есть примитивные типы int, boolean и т.д., но всем им соответствуют какие-то классы Добавлено Цитата korvin @ Наследием C. чем с точки зрения системы типов является void* |
|
Сообщ.
#4970
,
|
|
|
|
Цитата korvin @ кстати, в Delphi, емнип, тоже есть классы, соответствующие базовым типам (TInteger для Integer и т.п.). или не? Кстати, в GObject такие обертки тоже есть |
|
Сообщ.
#4971
,
|
|
|
|
Цитата D_KEY @ Вот в этом же предложении ты их и отождествил. Object - корневой класс любой иерархии в этих языках. Top'ом он не является. Даже если они есть, сами базовые типы не являются классами и наследником TObject. является, ибо у него нет супертипа, а неполная интеграция классов и типов всего лишь недоработка, не более |
|
Сообщ.
#4972
,
|
|
|
|
Цитата korvin @ является, ибо у него нет супертипа Но он и не является супертипом всех других типов. Так что Top'ом его назвать нельзя Добавлено Или лучше вот что, объясни разницу с GObject для С. |
|
Сообщ.
#4973
,
|
|
|
|
Цитата MyNameIsIgor @ А что вы хотите услышать? ![]() ваши претензии к аргументу Добавлено Цитата D_KEY @ Не наличие(оно так и остается необязательным), а его логичность, т.к. в этом случае ты не космическую иерархию классов делаешь, а обеспечиваешь Top для своей системы типов. вот и в делфи/джаве/решетке и обеспечили Top для своих объектных систем типов, оставив при этом параллельно существующую необъектную систему типов, почему-то ниасилив сделать полноценную интеграцию, хотя уже в 1994-м году вышел стандарт CL с CLOS, где такая интеграция есть Добавлено Цитата D_KEY @ Или лучше вот что, объясни разницу с GObject для С. я немного не понял того твоего поста про GObject. разницу с чем? |
|
Сообщ.
#4974
,
|
|
|
|
Цитата korvin @ вот и в делфи/джаве/решетке и обеспечили Top для своих объектных систем типов, оставив при этом параллельно существующую необъектную систему типов А это значит, что Top'ом системы типов их Object'ы не являются. А если и являются то, в той же степени, что GObject(или аналог) для С/С++. Добавлено Цитата korvin @ Цитата D_KEY @ Или лучше вот что, объясни разницу с GObject для С. я немного не понял того твоего поста про GObject. разницу с чем? Разницу с TObject для Delphi, например. В плане отношения к Top. |
|
Сообщ.
#4975
,
|
|
|
|
Цитата trainer @ В C++ ничто не мешает завести классы CBoolean, CInteger и т.д. Перегрузка операторов в помощь. Равно как и CSuperBaseClass. дело не в том, что можно, а в том, что это не распространяется на систему типов языка. и как вы укажете, что все классы, разработанные например не вами, а кем-то другим, не наследующиеся от SuperBaseClass являются субклассами SuperBaseClass? Добавлено Цитата D_KEY @ А это значит, что Top'ом системы типов их Object'ы не являются. А если и являются то, в той же степени, что GObject(или аналог) для С/С++. являются. а значит это то, что в этих языках две системы типов. |
|
Сообщ.
#4976
,
|
|
|
|
Цитата korvin @ дело не в том, что можно, а в том, что это не распространяется на систему типов языка. и как вы укажете, что все классы, разработанные например не вами, а кем-то другим, не наследующиеся от SuperBaseClass являются субклассами SuperBaseClass? А если ты создашь свою ОО-систему(на основе сохранившейся "старой" ОО-системе) в Delphi в обход TObject, то ты тоже не получишь наследника TObject Кстати, ты всегда можешь создать(автоматически) обертку. Добавлено Цитата korvin @ а значит это то, что в этих языках две системы типов. В таком случае, чем тебя не устраивает вторая система типов, которую обеспечивает библиотека(например, GObject)? Или это обязательно должно быть вшито в язык? Как-то не похоже на тебя |
|
Сообщ.
#4977
,
|
|
|
|
Цитата D_KEY @ Разницу с TObject для Delphi, например. В плане отношения к Top. кроме того, что классы в делфи реализованы на уровне языка, а GObject реализован средствами языка (и препроцессора), разницы никакой |
|
Сообщ.
#4978
,
|
|
|
|
Кстати, в вики есть статья о Top type
И там таки различные Object'ы к Top относят(с различными оговорками). Но там и GObject фигурирует Цитата Object - Smalltalk, JavaScript, Ruby, and some others. java.lang.Object - Java. Frequently written without the package prefix, as Object. Note also that it is not a supertype of the primitive types;... System.Object - C#, Visual Basic .NET and other .NET Framework languages object - Python since the type/class unification in Version 2.2 (new-style objects only; old-style objects in 2.x do not have this as a base class) Gobject - Glib ... interface{} - Go Добавлено Цитата korvin @ Цитата D_KEY @ Разницу с TObject для Delphi, например. В плане отношения к Top. кроме того, что классы в делфи реализованы на уровне языка, а GObject реализован средствами языка (и препроцессора), разницы никакой А, ну то есть во всех рассматриваемых языках возможности с этой точки зрения одинаковые? Тогда о чем спорим? |
|
Сообщ.
#4979
,
|
|
|
|
Цитата D_KEY @ А если ты создашь свою ОО-систему(на основе сохранившейся "старой" ОО-системе) в Delphi в обход TObject, то ты тоже не получишь наследника TObject Кстати, ты всегда можешь создать(автоматически) обертку. ведь это будет другая система типов, да. Цитата D_KEY @ В таком случае, чем тебя не устраивает вторая система типов, которую обеспечивает библиотека(например, GObject)? Или это обязательно должно быть вшито в язык? Как-то не похоже на тебя ![]() я не говорил, что меня она не устраивает. но вообще мне не очень нравится, когда в языке более одной системы типов (это относится ко всем языкам) Добавлено Цитата D_KEY @ А, ну то есть во всех рассматриваемых языках возможности с этой точки зрения одинаковые? Тогда о чем спорим? я не знаю, о чем ты споришь; Игорь заявил, что Top -- бред сивой кобылы, я ему ответил, что это не так и наличие Top бывает удобным. |
|
Сообщ.
#4980
,
|
|
|
|
Цитата korvin @ но вообще мне не очень нравится, когда в языке более одной системы типов (это относится ко всем языкам) Ну вообще-то в С++ она едина. Только основана на значениях, а не ссылках, потому и общий тип есть только ссылочный. А boost::any тебе чем не нравится? Обеспечивает типобезопасные Top-обертки. Добавлено Цитата korvin @ Игорь заявил, что Top -- бред сивой кобылы, я ему ответил, что это не так и наличие Top бывает удобным. Он говорил о космической иерархии классов. Это другое. |