Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 177 178 [179] 180 181 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#2671
,
|
|
|
|
Почему? В данном случае - что IL_Agent хотел, то и получил. |
|
Сообщ.
#2672
,
|
|
|
|
korvin, обоснуй.
|
|
Сообщ.
#2673
,
|
|
|
|
Цитата korvin @ это некорректный язык. и как после этого можно C++ называть объектно-ориентированным? А то, что вы предложение начинаете с маленькой буквы, означает, что русский - некорректный язык? IL_Agent получил результат на уровень своих знаний - вот и всё. |
|
Сообщ.
#2674
,
|
|
|
|
Цитата Qraizer @ korvin, обоснуй. ООП -- это позднее связывание и никаких приведений типа (они там не нужны). в C++ же мы тут наблюдаем обычное процедурное программирование на структурах несмотря на наличие слова class в коде. на лицо очередное несоответствие общепринятых терминов и их реализации в C++ |
|
Сообщ.
#2675
,
|
|
|
|
Цитата korvin @ ООП -- это позднее связывание и никаких приведений типа (они там не нужны). в C++ же мы тут наблюдаем обычное процедурное программирование на структурах несмотря на наличие слова class в коде. на лицо очередное несоответствие общепринятых терминов и их реализации в C++ Представьте себе, что не все молятся на г. Алана Кея и не все согласны с тем, что именно вышеупомянутый товарищ изобрёл ООП, как бы сильно он не старался приписать себе эту заслугу. Многие помнят, что первым ОО языком была Simula. И ваши имевшее место выкрики "в ООП нет классов" противоречат первоисточнику. |
|
Сообщ.
#2676
,
|
|
|
|
Цитата MyNameIsIgor @ Многие помнят, что первым ОО языком была Simula. о да, очень многие, хоть один из этих многих может предоставить современную реализацию? |
|
Сообщ.
#2677
,
|
|
|
|
Цитата korvin @ о да, очень многие Да, многие. Цитата korvin @ хоть один из этих многих может предоставить современную реализацию? Что такое "современная реализация"? Написанная в последние годы? Я без понятия, я не слежу за реализациями Simul'ы. Потому что они никак не влияют на факт того, кто был первым. На факт того, что в C++, C#, Java (очень популярных языков, 35% в сумме по оценкам TIOBE) видно гораздо большее влияние Simul'ы, чем Smalltalk'а. Хотя роль и значение последнего я не игнорирую. Если угодно, можете смотреть на эти языки как на современную интерпретацию мотивов Simul'ы. В конце концов я говорил о другом: слова Алана Кея - всего лишь слова. Так что не надо приписывать им аксиоматичность и прочую магическую силу - никто ниц всё равно не падёт. |
|
Сообщ.
#2678
,
|
|
|
|
Цитата korvin @ В С++ ты сам выбираешь, язык выбирает за тебя только, если ты его не знаешь. в C++ же мы тут наблюдаем обычное процедурное программирование на структурах |
|
Сообщ.
#2679
,
|
|
|
|
![]() ![]() #include<iostream> class Base { public: virtual void Method(){std::cout<<"Base";} }; class Derive:public Base { public: void Method(){std::cout<<"Derive";} }; void Func(Base& b) { b.Method(); } int main() { Derive d; Func(d); } Добавили один символ и, о ЧУДО! ВСЁ ЗАРАБОТАЛО! Шайтнан... |
|
Сообщ.
#2680
,
|
|
|
|
Цитата MyNameIsIgor @ Что такое "современная реализация"? Написанная в последние годы? Я без понятия, я не слежу за реализациями Simul'ы. хотя бы работающая. Впрочем я уже сам нашел. Java, кстати, ведет себя в данном случае не так как плюсы и симула |
|
Сообщ.
#2681
,
|
|
|
|
Да я знаю, что надо сделать, чтобы оно заработало. Почему компилятор мне про некорректность ничего не рассказал ?Цитата MyNameIsIgor @ IL_Agent получил результат на уровень своих знаний - вот и всё. Полученный результат абсолютно не очевиден и требует знаний, это я и показывал. А если я делаю так: Цитата Flex Ferrum @ Добавили один символ и, о ЧУДО! ВСЁ ЗАРАБОТАЛО! Шайтнан... ![]() , то тип перестаёт быть "конкретным" ? Добавлено Программист, программирующий на языке, в котором нет подобных проблем |
|
Сообщ.
#2682
,
|
|
|
|
Из этого напрямую и вытекает. А также он является владельцем самой строки, что заставляет не забывать о некоторых нюансах Цитата D_KEY @ Единственное, о чем тут можно говорить, так это об организации "стандартного" виртуального конструктора копирования, причем в стиле С++ Поподробнее? Цитата Qraizer @ Romkin, не сомневаюсь. Вопрос был в эффективности ленивого копирования с его сложностью реализации по сравнению с простым хранением значения безо всяких распальцовок. Это и так известно. Цитата Red @ В C# нельзя делать структуры (типы значений) базовыми или производными типами других классов или структур. Хотя они неявно наследуются от класса ValueType. То есть? |
|
Сообщ.
#2683
,
|
|
|
|
Цитата korvin @ Java, кстати, ведет себя в данном случае не так как плюсы и симула Что значит "не так"? Синтаксис не тот? Что явно не надо указывать передачу по ссылке? Так и в шарпе точно так же. Ну, так а кто сказал, что синтаксис идентичен? Просто они построены на ссылочной семантике, а плюсы - на значениях. Ничего криминального не вижу - это просто надо знать. А по поводу логичности разделения в шарпе на ссылочные типы и значения уже обсуждалось... |
|
Сообщ.
#2684
,
|
|
|
|
Цитата DesweR @ Цитата Red @ В C# нельзя делать структуры (типы значений) базовыми или производными типами других классов или структур. Хотя они неявно наследуются от класса ValueType. То есть? Т.е. не напишешь обсуждаемый пример, т.к. нельзя создавать иерархии значимых типов. Наверно, в том числе и по этой причине запретили наследование структур. |
|
Сообщ.
#2685
,
|
|
|
|
Цитата MyNameIsIgor @ Что значит "не так"? Синтаксис не тот? Что явно не надо указывать передачу по ссылке? Так и в шарпе точно так же. Ну, так а кто сказал, что синтаксис идентичен? Просто они построены на ссылочной семантике, а плюсы - на значениях. Ничего криминального не вижу - это просто надо знать. А по поводу логичности разделения в шарпе на ссылочные типы и значения уже обсуждалось... семантика не та, нет в яве такой семантики, чтобы при передаче экземпляра Derived в Func(Base), вызывался Base.method. Т.е. тип аргумента всегда только ограничивает тип снизу, при этом всегда действует позднее связывание. В симуле, кстати, экземпляры классов только ссылочные, но тип аргумента задаёт всегда точный тип, а при передаче подтипа происходит неявное приведение к супертипу |