Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 407 408 [409] 410 411 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6121
,
|
|
|
|
Цитата korvin @ То что C++ как обычно неадекватен и состоит из костылей чуть менее, чем наполовину, призванных решить проблемы, которые если вы потрудились прочитать то стандарт, то вы ССЗБ FIXED |
|
Сообщ.
#6122
,
|
|
|
|
Ну, по ссылке у товарища это, если ему верить, получилось случайно. Он не хотел в разных единицах трансляции иметь разные определения класса, у него два класса случайно имеют совпавшие имена. Это не "не потрудился прочитать стандарт", это "не потрудился прочитать про дизайн". Надо было нэймспейсы использовать.
|
|
Сообщ.
#6123
,
|
|
|
|
Цитата Qraizer @ Он не хотел в разных единицах трансляции иметь разные определения класса, у него два класса случайно имеют совпавшие имена. Это не "не потрудился прочитать стандарт", это "не потрудился прочитать про дизайн". Надо было нэймспейсы использовать. Бесспорно пространства имён рулят. Но ведь товарищ полез спрашивать - следовательно, про ODR не осведомлён... |
|
Сообщ.
#6124
,
|
|
|
|
Цитата KILLER @ Примени эту фразу и к С++. Или чо, хочешь сказать что в Cl томже нельзя сделать вообще никакую логическую ошибку ? При чем тут логическая ошибка? Это не логическая ошибка. |
|
Сообщ.
#6125
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Можно, кстати, сравнить с тем же CL, где есть странные функции работы со списками, которые в целях оптимизации портят произвольным образом(зависимым от реализации) исходные списки во время получения результата, при этом если ты потрудился прочитать стандарт, то ССЗБ. FIXED У тебя двойные стандарты при оценке языков ?Цитата То что C++ как обычно неадекватен и состоит из костылей чуть менее, чем наполовину, призванных решить проблемы, которых в других языках просто не могут возникнуть. Ээ. Человек просто ошибся. В зависимости от языка последствия ошибок могут быть разными. Кстати, С++ в этом примере не решает каких-то "проблем, которых в других языках просто не могут возникнуть". |
|
Сообщ.
#6126
,
|
|
|
|
Цитата Qraizer @ Надо было нэймспейсы использовать. Кстати, а если имена неймспесов совпадут? |
|
Сообщ.
#6127
,
|
|
|
|
Цитата korvin @ Это не логическая ошибка. Правда? А можешь пояснить твое видение проблемы? |
|
Сообщ.
#6128
,
|
|
|
|
Цитата D_KEY @ Кстати, С++ в этом примере не решает каких-то "проблем, которых в других языках просто не могут возникнуть". C++ не решает, решает костыль (ODR). Ну и да, в той же жабе два одиноименных класса в разных единицах трансляции просто невозможны. Добавлено Цитата D_KEY @ Правда? А можешь пояснить твое видение проблемы? Недостаточно продуманный дизайн языка. |
|
Сообщ.
#6129
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Правда? А можешь пояснить твое видение проблемы? Недостаточно продуманный дизайн языка. Это общие слова. Ты хоть понял, что автор вопроса сделал не так? Добавлено Цитата korvin @ решает костыль (ODR). Странно звучит фраза как-то. Цитата Ну и да, в той же жабе два одиноименных класса в разных единицах трансляции просто невозможны. И что это нам дает на практике? |
|
Сообщ.
#6130
,
|
|
|
|
Цитата D_KEY @ И что это нам дает на практике? Наверное они там бедные сидят и по пару дней придумывают вменяемые, незанятые названия классам |
|
Сообщ.
#6131
,
|
|
|
|
Цитата D_KEY @ Это общие слова. Ты хоть понял, что автор вопроса сделал не так? Я-то понял, и не вижу вообще ничего хорошего в том, что так вообще можно сделать. При том, что нигде больше, насколько мне известно, так сделать нельзя (по крайней мере с такими же последствиями). Добавлено Цитата D_KEY @ Странно звучит фраза как-то. Почему странно? «Ну вы знаете, у нас тут есть такая проблемка, поэтому у нас есть вот такая рекомендация, следуйте ей пожалуйста». А компилятор молчит... Добавлено Цитата D_KEY @ И что это нам дает на практике? Принципиальную невозможность таких вот ошибок. |
|
Сообщ.
#6132
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Странно звучит фраза как-то. Почему странно? «Ну вы знаете, у нас тут есть такая проблемка, поэтому у нас есть вот такая рекомендация, следуйте ей пожалуйста». Какая проблема-то? Цитата и не вижу вообще ничего хорошего в том, что так вообще можно сделать. Но видишь что-то хорошее в том, что в CL можно сделать так, как я показал в последнем примере? Точно двойные стандарты. Цитата При том, что нигде больше, насколько мне известно, так сделать нельзя (по крайней мере с такими же последствиями). Так и в С++ так делать нельзя. Вопрос лишь в степени контроля со стороны компилятора Добавлено Цитата korvin @ Цитата D_KEY @ И что это нам дает на практике? Принципиальную невозможность таких вот ошибок. И часто они у тебя возникают при программировании на С++? |
|
Сообщ.
#6133
,
|
|
|
|
Цитата D_KEY @ Но видишь что-то хорошее в том, что в CL можно сделать так, как я показал в последнем примере? Точно двойные стандарты. А что ты там показал? Применил деструктивную функцию к объекту и удивляешься последствиям? Странный ты какой-то. Единственное, что мне в данном случае не нравится в CL, что есть только деструктивная sort, а не как со многими функциям чистая sort и деструктивная nsort. Добавлено Цитата D_KEY @ Цитата При том, что нигде больше, насколько мне известно, так сделать нельзя (по крайней мере с такими же последствиями). Так и в С++ так делать нельзя. Вопрос лишь в степени контроля со стороны компилятора ![]() Ты не видишь разницы между фразами «сделать нельзя» и «делать нельзя»? Добавлено Цитата D_KEY @ И часто они у тебя возникают при программировании на С++? Слава богу, я не программирую на C++ Добавлено Цитата D_KEY @ Какая проблема-то? Проблема отсутствия контроля за соответствем определения и реализации со стороны языка. |
|
Сообщ.
#6134
,
|
|
|
|
Цитата korvin @ А что ты там показал? Применил деструктивную функцию к объекту и удивляешься последствиям? Странный ты какой-то. Понимаешь, эту фразу с тем же успехом можно отнести к тому примеру на С++ В чем разница? Цитата Ты не видишь разницы между фразами «сделать нельзя» и «делать нельзя»? Но ты же можешь применить деструктивную функцию к объекту, который потом используешь? Добавлено Цитата korvin @ Проблема отсутствия контроля за соответствем определения и реализации со стороны языка. Я пока не понял, что бы он дал в данном конкретном случае. |
|
Сообщ.
#6135
,
|
|
|
|
Цитата D_KEY @ Я пока не понял, что бы он дал в данном конкретном случае. Ошибку компиляции/линковки вместо ошибки сегментации в рантайме. Добавлено Цитата D_KEY @ Но ты же можешь применить деструктивную функцию к объекту, который потом используешь? Угу, как и в любом другом языке. В императивных языках их применяют особенно часто, поэтому это вполне обыденное и очевидное поведение. Тебя же не смущает, что List.add()/List.remove(), например, изменяют список? |