Войти
ПрограммированиеФорумОбщее

Что разработчик должен знать в С++? (9 стр)

Страницы: 18 9 10 11 12 Следующая »
#120
(Правка: 14:47) 14:46, 23 сен. 2020

san
> никогда не слышал?
Это было позже. И, пардон, не имеет отношения к теме. Тут тупо про возможность и целесообразность, а не про "стандартизацию".


#121
14:53, 23 сен. 2020

Aslan
> Эээ, пролог, эпилог для чего?
https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl

#122
14:56, 23 сен. 2020

gudleifr
> Это было позже.
Позже чего? Это базовые функции Си которые разумеется вошли и в С++, поскольку С++ (как тебе много раз объясняли), это надстройка над Си. Си полностью туда входит ибо является фундаментом. Ты же упорно твердишь что это разные здания. Хотя похоже проектную документацию не читал.

#123
15:09, 23 сен. 2020

san
> Позже чего?
Позже того, как этот механизм уже вовсю использовался.

san
> С++ (как тебе много раз объясняли), это надстройка над Си
Да. Но это совершенно другой язык. Вам Aslan только что еще раз показал, что с точки зрения C++ обычное Си-программирование "опасно".

san
> Си полностью туда входит ибо является фундаментом.
Ну, во-первых, это неправда. Чисто формально некоторые вещи они делают по-разному. Но разница в другом.

В C++ изначально две идеи.
1. ООП программа, на самом деле, не должна быть ОО. Все ООП может быть реализовано только на уровне обфускации.
2. Построенные на основе C++ "программные миры" должны вводится без нарушения C++-синтаксиса, для чего введена возможность переопределить практически любую лексему. Что, конечно, породило кучу фигни, навроде тех же ссылок.

Т.е. C++ - это только один из вариантов построения здания на Си-фундаменте. Т.е. когда мы пишем что-то на Си, мы можем просто ставить наши кубики на "фундамент", а когда на C++ - мы должны пристраивать "балкон".

#124
15:13, 23 сен. 2020

san
> С++ (как тебе много раз объясняли), это надстройка над Си. Си полностью туда
> входит ибо является фундаментом.
Это было верно в прошлом, но не сейчас.
На данный момент, C11 и C++20 - это две различные ветки развития, со своими прибамбасами, которые иногда заимствуются друг у друга - например, memory model си взяли из плюсов; а designated initializers  - напротив, плюсы приняли только к 20-му стандарту, тогда как в си они присутствуют ещё с 11.

#125
15:16, 23 сен. 2020

gudleifr
С++ не менее опасен, про крестопроблемы в разы больше написано
C++ class - это тот же struct, разница невелика

#126
(Правка: 15:27) 15:23, 23 сен. 2020

Delfigamer
> данный момент, C11 и C++20 - это две различные ветки развития, со своими прибамбасами
Это разные этажи того же здания. Спустишься до подвала - там Си. Поднимешься на этаж - там С++ Страуструпа, выше С++ 03, С++ 05, еще выше C++11 и т.д. Каждый новый этаж опирается на уже построенный.

#127
(Правка: 15:26) 15:25, 23 сен. 2020

Aslan
> С++ не менее опасен
Да, но Си не опасен от слова "вообще"! Он специально создан для написания внутренностей ОС. Если бы он не имел простого и удобного доступа к ним, он не был бы нужен.

Aslan
> C++ class - это тот же struct, разница невелика
Разницы две: во первых, из обычной struct я могу в своей программе сделать класс +100500 способами, а не одним, реализованным в C++. Во-вторых: вся работа со struct прозрачна для программиста, а не инкапсулирована во внутренности "волшебного объекта".

san
> Каждый новый этаж опирается на уже построенный.
И все уже, и уже.

#128
15:31, 23 сен. 2020

gudleifr
> И все уже, и уже.
А зачем ему быть шире? Здание то одно. Вот Java это другое здание. Или Ада, Паскаль. А все варианты С++ с разными цифрами это все надстройки над старым добрым Си.

#129
(Правка: 15:33) 15:31, 23 сен. 2020

Aslan
> C++ class - это тот же struct, разница невелика
эта разница на языке c++ называется

std::is_pod<A>::value
и эта разница огромная
#130
15:38, 23 сен. 2020

san
> А все варианты С++ с разными цифрами это все надстройки над старым добрым Си.
Из-за таких, как вы, из плюсов до сих пор не выпилили тонну говна, которая осталась от си. И из-за таких, как вы, низкоуровневое сишное говно вечно пролазит в высокоуровневый плюсовый код. И из-за таких, как вы, есть масса людей, которые думают, что в c++ ручное управление памятью.

#131
15:38, 23 сен. 2020

san
> А зачем ему быть шире?
Чем уже небоскреб, тем длиннее и неустойчивее балконы, нужные, чтобы дотянуться до реальных вещей.

#132
(Правка: 15:49) 15:48, 23 сен. 2020

gudleifr
>вся работа со struct прозрачна для программиста, а не инкапсулирована во внутренности "волшебного объекта".

Что там волшебного? Класс это та же структура, просто помимо данных она хранит еще адреса функций. Только и всего. Тот же фокус можно и на Си сделать (он собственно так и сделан, С++ написан на Си). Добавлены проверки доступа к данных при их чтении за пределами структуры, но это не имеет отношения к безопасности программы, это повышение "дуракозащищенности" от программиста. А так - пиши по несуществующему адресу и программа упадет, хоть она на Си, хоть на C++ с любой цифрой.

#133
(Правка: 15:58) 15:54, 23 сен. 2020

san
> Что там волшебного?
То, что для доступа к полям могут использоваться хитрые (неявно!) методы с побочными эффектами.
То, что при преобразовании типов... см. выше.
То, что при размещении, удалении... см. выше.
И т.д., и т.п.
Да один отказ от передачи объектов исключительно по значению сразу свел на нет всю мощность языка!

#134
15:56, 23 сен. 2020

pahaa
> Из-за таких, как вы, из плюсов до сих пор не выпилили тонну говна, которая осталась от си.
Видишь ли, если из C++ "выпилить" Си, то языка не останется.
"Выпили" из своего техно-жаргона архаичный и дико нелогичный русский язык и попробуй изьясняться на том, что получится.

Страницы: 18 9 10 11 12 Следующая »
ПрограммированиеФорумОбщее