Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 173 174 [175] 176 177 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#2611
,
|
|
|
|
Дык у Круза надо спрашивать. Наверно по той же причине, почему используются динамические массивы T* вместо статических T[].
|
|
Сообщ.
#2612
,
|
|
|
|
Цитата Shaggy @ Цитата Qraizer @ Это Дельфи со своей философией думать за программиста может объявить что-то ссылочным типом, что-то обычным. ![]() Пояснишь? И в чем заключается логика, когда одни типы назначаются "ссылочными", другие "обычными"? Зачем? Нет ли тут противоречий с самим понятием "типа"? Вот лично мне кажется, что лучше, когда все переменные в языке являются ссылками, а примитивные типы объявляются immutable(что дает возможность в реализации сделать переменные этих типов не ссылками, а значениями, без каких-либо последствий для программиста). Или уж делать как в С/С++ - все задавать руками и предоставить возможность определять свой вид косвенного обращения и управления ссылками и выделенной памятью - отсюда умные указатели и т.п. Добавлено Это надо спрашивать автора. Значит понадобились. |
|
Сообщ.
#2613
,
|
|
|
|
Цитата D_KEY @ Нет ли тут противоречий с самим понятием "типа"? нет |
|
Сообщ.
#2614
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Нет ли тут противоречий с самим понятием "типа"? нет Тип является атрибутом значения, а не переменной. Если мы вносим само понятие ссылки или указателя в систему типов, то логично, чтобы это были отдельные типы: ссылка на T и/или указатель на T. То есть значением этих типов(если не брать в расчет оптимизации) будут ссылки(в реализации, скорее всего, адреса) на значение типа T. Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык. Во-первых, неясно, что представляют собой переменные, а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа. Другое дело, что переменные(а не значения) в языке могут быть "представлены" или как ссылки или просто как имена для доступа к значению. Но это другая тема и я уже высказывал свою точку зрения - лучше, когда переменные являются(на концептуальном уровне) ссылками. |
|
Сообщ.
#2615
,
|
|
|
|
Цитата D_KEY @ Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык. Во-первых, неясно, что представляют собой переменные, а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа. Это малая цена за избавление от лишнего Цитата D_KEY @ Или уж делать как в С/С++ - все задавать руками и предоставить возможность определять свой вид косвенного обращения и управления ссылками и выделенной памятью - отсюда умные указатели и т.п. P.S. D_KEY, Oxygene бы тебе пришёлся по нраву Добавлено P.S.S. Что я делаю не так? ![]() ![]() char a[1]; cin >> a; if (a == "y") { } |
|
Сообщ.
#2616
,
|
|
|
|
Цитата DesweR @ Цитата D_KEY @ Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык. Во-первых, неясно, что представляют собой переменные, а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа. Это малая цена за избавление от лишнего Нет там его А плата очень высокая - отсутствие логики в ядре языка == кривое языковое ядро.Цитата D_KEY, Oxygene бы тебе пришёлся по нраву ![]() А что там? В любом случае меня воротит от паскале-подобного синтаксиса. Ничего не могу с собой поделать. Это не объективно, потому на эту тему не спорю. Очень мешает освоению ады, которую таки хочу знать. Добавлено Цитата DesweR @ P.S.S. Что я делаю не так? ![]() ![]() char a[1]; cin >> a; if (a == "y") { } Используешь язык программирования, который не знаешь. |
|
Сообщ.
#2617
,
|
|
|
|
Цитата D_KEY @ А плата очень высокая - отсутствие логики Дело видимо привычное, у меня, по крайней мере, никогда не возникало твоих вопросов и тем более каких-либо путаниц. Цитата D_KEY @ А что там? Всё как в C# Добавлено Цитата D_KEY @ Используешь язык программирования, который не знаешь. И всё таки, что там? |
|
Сообщ.
#2618
,
|
|
|
|
Цитата DesweR @ Цитата D_KEY @ А плата очень высокая - отсутствие логики Дело видимо привычное, у меня, по крайней мере, никогда не возникало твоих вопросов и тем более каких-либо путаниц. И не возникнет, пока не станешь хотя бы пытаться программировать на других языках или просто не захочешь углубить теоретические знания. Цитата Значит не понравится. Странная иерархия типов, деление на ссылочные и обычные типы, и т.п.Цитата D_KEY @ А что там? Всё как в C# Цитата Цитата D_KEY @ Используешь язык программирования, который не знаешь. И всё таки, что там? Как бы объяснить не сишнику... Начнем с того, что, char[1] - это не "строка" и даже не С-строка. |
|
Сообщ.
#2619
,
|
|
|
|
Цитата DesweR @ Там только с фигурными скобками всё хорошо. И всё таки, что там? |
|
Сообщ.
#2620
,
|
|
|
|
Цитата Adil @ Цитата DesweR @ Там только с фигурными скобками всё хорошо.И всё таки, что там? +1 |
|
Сообщ.
#2621
,
|
|
|
|
Цитата D_KEY @ И не возникнет И не возникнет, пока пишу на ЯП высокого уровня Цитата D_KEY @ Как бы объяснить не сишнику... Ответ то я знаю, казалось бы где логика? ![]() ![]() char a; cin >> a; if (a == 'y') { } |
|
Сообщ.
#2622
,
|
|
|
|
логика тут:
![]() ![]() std::string a; std::cin >> a; if( a == "y" ) { } |
|
Сообщ.
#2623
,
|
|
|
|
Цитата D_KEY @ Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык. нет. Цитата D_KEY @ Во-первых, неясно, что представляют собой переменные вполне ясно. Цитата D_KEY @ а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа. размеченная структура. но нам это знать не нужно. внутренняя реализация -- забота разработчиков языка. барьеры абстракций, да. ![]() ![]() let cons a b -> (lambda m -> a b) let car p -> p (lambda a b -> a) let cdr p -> p (lambda a b -> b) cons возвращает процедуру или значение типа Cons-cell? Добавлено Цитата D_KEY @ И не возникнет, пока не станешь хотя бы пытаться программировать на других языках или просто не захочешь углубить теоретические знания. у меня никаких путаниц не возникало ни с одним языком, кроме С++, т.к. я ожидалл, что объекты в нем, как и везде -- ссылочные. |
|
Сообщ.
#2624
,
|
|
|
|
Цитата DesweR @ Цитата D_KEY @ И не возникнет И не возникнет, пока пишу на ЯП высокого уровня ![]() Уверен? Ты подразумеваешь степень отдаленности от аппаратной платформы(и тут ты прав) или степень высокоуровневости и выразительности доступных тебе абстракций? Цитата Цитата D_KEY @ Как бы объяснить не сишнику... Ответ то я знаю, казалось бы где логика? Почему не воспользовался строками из стандартной библиотеки С++? Почему ты не ознакомился с понятием С-строк, раз уж решил их использовать? Цитата Если ты об отношении единичного объекта и массива, то и пиши так:![]() ![]() char a; cin >> a; if (a == 'y') { } ![]() ![]() char a[1]; cin >> a[0]; if (a[0] == 'y') { } Добавлено Цитата korvin @ Цитата D_KEY @ Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык. нет. Ну как же нет? Цитата И что же?Цитата D_KEY @ Во-первых, неясно, что представляют собой переменные вполне ясно. Допустим, переменные - ссылки. Тогда у нас получается ссылка на ссылку для ссылочных типов? А может у нас просто отпадает надобность в ссылочных типах ?Допустим, переменные - значения. Тогда у нас получается, что поведение переменной зависит от того, ссылочный у нас тип или нет. Прекрасный повод задуматься об обобщенном коде. Цитата Цитата D_KEY @ а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа. размеченная структура. но нам это знать не нужно. внутренняя реализация -- забота разработчиков языка. барьеры абстракций, да. Это дополнительные подкопотные знания, торчащие наружу, а не барьеры абстракции. Цитата Цитата D_KEY @ И не возникнет, пока не станешь хотя бы пытаться программировать на других языках или просто не захочешь углубить теоретические знания. у меня никаких путаниц не возникало ни с одним языком, кроме С++, т.к. я ожидалл, что объекты в нем, как и везде -- ссылочные. Значит у тебя сыграла привычка. А в С++ нужно думать всегда о том, что делаешь. Это не красивые слова, это действительно так. Плохо это или хорошо - вопрос отдельный. |
|
Сообщ.
#2625
,
|
|
|
|
упс, недоглядел =)
|