1 (05.06.2011 14:25:09 отредактировано Klim)

си от крестов отличается только лишь наличием классов?
и мелкостя всякие типа, объявление переменных где попало?
или в чем еще?

отделил по просьбе ТС

//

2

сантехник пишет:

си от крестов отличается только лишь наличием классов?
и мелкостя всякие типа, объявление переменных где попало?
или в чем еще?

синтаксически отличий не много(хотя они и базовые): кассы, шаблоны, перегрузка функций и операторов... более жёсткие требования к типизации и вообще к синтаксису... есть ещё другие мелочи...
а вот идейно - это в корне разные языки.

95% процентов проблем находятся между клавиатурой и стулом.
Fat-Zer пишет:

а вот идейно - это в корне разные языки.

вот тут можно в два слова разжевать?

//

4

сантехник пишет:

вот тут можно в два слова разжевать?

насчёт "в корне разные" я наверное погорячился... но всё же, как ни крути, С++ предполагает ООП подход, а си - классический императивный/структурный. В любом случае на плюсах можно писать "как на си", хотя это считается плохим стилем. а вот обратное практически не возможно...

95% процентов проблем находятся между клавиатурой и стулом.

ну то, что один ооп а другой структурный эт я знал.
тут пока ждал ответ полазил в гугле, многие (они назыают себя хорошими выдающимися программистами с тысящами проектов за спиной) считают что с++ не нужен..
спорить с ними не могу, нет багажа знаний.

интересно почему с++ называли..
есть ли чего общего в названии и операции ++?
или это совпадение

//

6 (05.06.2011 23:21:14 отредактировано vkonnov)

Гугл выдает: http://otvety.google.ru/otvety/thread?t … &pli=1

7

c++ это вывернутый наизнанку C.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

8

сантехник пишет:

интересно почему с++ называли..
есть ли чего общего в названии и операции ++?
или это совпадение

"си с блекджеком и шлюхами" звучало как-то длинно...
"си с классами" - не кошерно
так что тов. Страуструп просто дописали инкремент...

vkonnov пишет:

Друзья, это называется флуд.

а) это называется оффтоп
б) в "разговорах обо всём" на не большой оффтоп обычно закрывают глаза
в) закругляемся...

95% процентов проблем находятся между клавиатурой и стулом.

9

vkonnov пишет:

К тому же это настолько заезженный вопрос, что одна из первых ссылок Гугла выдает: http://otvety.google.ru/otvety/thread?t … &pli=1

кстати - неправильный ответ. C++ это вовсе не "си с картами и девочками". Это вообще _другой_ язык.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

10

drBatty, формально да. Но по сути это просто дополненный язык С.
Не путайте его с C# wink

Linux Mint 19.3 Mate Edition
Windows 7

11

Уже за попкорном бежать? ag

То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me".
GNU/Linux Debian

12

voral, за пивом и чипсами ag

Linux Mint 19.3 Mate Edition
Windows 7

13

Wolfenberg пишет:

формально да. Но по сути это просто дополненный язык С.

как раз ФОРМАЛЬНО - C++ это C с классами и разными плюшками, вроде комментариев удобных.
но ПО СУТИ - это совершенно иной ЯП, и писать на нём нужно совсем иначе.

Wolfenberg пишет:

Не путайте его с C#

а что это за НЁХ?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

14

на математические курсы надо ходить, а языки самому учить


drBatty пишет:

но ПО СУТИ - это совершенно иной ЯП, и писать на нём нужно совсем иначе.

Бездоказательно как то

XMPP: mogul82@jabber.ru Фанбой AMD

15 (04.06.2011 21:44:21 отредактировано Wolfenberg)

drBatty, сами вы нёх-нух. Прежде, чем чушь городить, разобрались бы с фактами:
1. С - язык, создающий простые структурированные программные коды.
2. С++ - тот же язык С, модифицированный возможностями инкапсуляции классов и отслеживанием их перегрузки. Это позволяет избежать огромного кода, неизбежного пр применении С.
3. С# - язык программирования, основанный на С, но ориентирован исключительно на веб-платформы smile

Linux Mint 19.3 Mate Edition
Windows 7

16

Wolfenberg пишет:

1. С - язык, создающий простые структурированные программные коды.
2. С++ - тот же язык С, модифицированный возможностями инкапсуляции классов и отслеживанием их перегрузки. Это позволяет избежать огромного кода, неизбежного пр применении С.

Страуструп "Язык программирования С++" пишет:

Чем лучше программист знает С, тем труднее будет для него при программировании на С++ отойти от стиля программирования на С.

Идея С++ в том что он практически полностью совместим с си, однако является совершенно другим (объектно-ориентированным) по сути. Можно писать на нём "как на си" используя плюшки и пряники, но  это называется быдлокод, ибо теряет силу половины нововведений.

Wolfenberg пишет:

3. С# - язык программирования, основанный на С, но ориентирован исключительно на веб-платформы

это всё на винфаке обсуждают... а тут лучше про java вспомнить...

95% процентов проблем находятся между клавиатурой и стулом.

17

Fat-Zer, вы имеете ввиду j#?

Linux Mint 19.3 Mate Edition
Windows 7

18

Wolfenberg пишет:

Fat-Zer, вы имеете ввиду j#?

нет.... J# это извращённое понимание java от M$ (как мне рассказывали/я читал, сам я его в глаза не видел)
А вот C# и java очень похожи... правда ИМХО это всё равно нечто противоестественное созданное из плюсов...

95% процентов проблем находятся между клавиатурой и стулом.

19

Wolfenberg пишет:

1. С - язык, создающий простые структурированные программные коды.
2. С++ - тот же язык С, модифицированный возможностями инкапсуляции классов и отслеживанием их перегрузки. Это позволяет избежать огромного кода, неизбежного пр применении С.

facepalm...

Wolfenberg пишет:

3. С# - язык программирования, основанный на С, но ориентирован исключительно на веб-платформы

это php

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

20

drBatty, если вы знаете только PHP, то это ваши пробелы.
Web: PHP, HTML, XML, Java Script, VB Script, C#, J#, Rev... smile

Linux Mint 19.3 Mate Edition
Windows 7

21

Wolfenberg, дело в том, что и C# и J# к веб-платформам отношение имеет весьма отдалённое... всё это языки для M$.Net.

95% процентов проблем находятся между клавиатурой и стулом.

22 (05.06.2011 10:51:00 отредактировано mogul82)

Wolfenberg пишет:

3. С# - язык программирования, основанный на С, но ориентирован исключительно на веб-платформы smile

вот мужики то не знают. Пишут на нем игры 3D под XNA и ПО для офисов -)

mogul82 пишет:

основанный на С

на яве он основан


_

XMPP: mogul82@jabber.ru Фанбой AMD

23

mogul82, да ну? А здесь по-другому пишут:
http://ru.wikipedia.org/wiki/C_Sharp  wink
Вот автор-то не знает smile

Linux Mint 19.3 Mate Edition
Windows 7

24

mogul82 пишет:

Бездоказательно как то

докажу.

В языке Си имеется две сущности:
1) подчинённая сущность ЧИСЛО,
2) и главная сущность ФУНКЦИЯ.

Программист пишет ФУНКЦИИ, которые обрабатывают ЧИСЛА (сами, или другими ФУНКЦИЯМИ).

В С++ нету этих сущностей. За то есть другие:
1) главная сущность КЛАСС.
2) подчинённая сущность МЕТОД.

Программист пишет КЛАССЫ, которые включают в себя другие КЛАССЫ, а так-же МЕТОДЫ. МЕТОД в С++ не существует сам по себе, а прибит гвоздями к КЛАССУ. В Си напротив - ЧИСЛА не существуют сами по себе, а жёстко прибиты к ФУНКЦИЯМ.

В С++ имеются особые, встроенные классы. Например встроенный класс int, у которого имеется встроенный метод int::operator-(int). С виду, этот оператор работает также, как и в Си, но это только на первый взгляд. Если ситуация чуть сложнее примитивной, всё меняется. Например, я уже писал про код x-- - --x;
В теории, в Си, этот код можно выполнить тремя способами, и получить три разных результата (0, 1, и 2). Но это для классического компьютера. А у нас - НЕ классический. Потому компилятор применяет (не всегда) четвёртый путь - он ОДНОВРЕМЕННО выполняет постфиксный декремент ЧИСЛА, вместе с префиксным декрементом и последующим вычитанием ЧИСЕЛ.
Но в С++ нет ЧИСЕЛ, а есть КЛАССЫ. Именно по этой причине данное выражение в С++ вычисляется однозначно как
1 - x.operator--();
2 - x.operator-(x.operator--(int));
Операции 1 и 2 могут выполнятся в любом порядке или одновременно - результат однозначный x-- - --x == 1 в С++.

Так получается из-за появление точки следования, ибо в С++ нет чисел, а есть только КЛАССЫ и их МЕТОДЫ.

Wolfenberg пишет:

Это позволяет избежать огромного кода, неизбежного пр применении С.

это на каких курсах вам подобную глупость сказали? лишний код появляется тогда, и только тогда, когда вы используете не тот инструмент. Например ООП язык для решения не ООП задачи и наоборот.

Wolfenberg пишет:

drBatty, если вы знаете только PHP, то это ваши пробелы.
Web: PHP, HTML, XML, Java Script, VB Script, C#, J#, Rev...

HTML и XML это вообще не языки программирования. Не дай вам б-г ляпнуть подобную глупость  кому-то другому ac
C# это не web, это маздайное УГ, которое маздайщики применяют для мадайных быдлосайтов за не имением лучшего.

Да и вообще, мы тут не про скрипты...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

25

Fat-Zer пишет:

Идея С++ в том что он практически полностью совместим с си, однако является совершенно другим (объектно-ориентированным) по сути.

да не разу он не совместим. встроенный тип int на самом деле - встроенный тип. Это имитация целого числа. На самом деле, это класс, со своими методами и со своими конструкторами. Многие программы на C работают и на C++, но исключительно только благодаря имитации. Код порождённый компилятором с плюсами в корне отличается от кода без плюсов. И только благодаря оптимизации иногда получается одно и тоже.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

26

Wolfenberg пишет:

mogul82, да ну? А здесь по-другому пишут:
http://ru.wikipedia.org/wiki/C_Sharp   
Вот автор-то не знает

мне подправить, а вообще не вижу, где это написано...mogul82 прав: смесь C++, java и больной фантазии мелкомягких. Хотя и не такой $@%$^ой как C++/CLI...

drBatty пишет:

Например, я уже писал про код x-- - --x;
В теории, в Си, этот код можно выполнить тремя способами, и получить три разных результата (0, 1, и 2).

по логике он может вернуть 0 1 и 2, а на практике он может вернуть 100500 и это будет верно.

drBatty пишет:

Операции 1 и 2 могут выполнятся в любом порядке или одновременно - результат однозначный x-- - --x == 1 в С++.

авот мой глупый gcc говорит, что это будет 0... а ещё где-то читал, что это UB. smile

95% процентов проблем находятся между клавиатурой и стулом.

27

drBatty пишет:

да не разу он не совместим. встроенный тип int на самом деле - встроенный тип. Это имитация целого числа. На самом деле, это класс, со своими методами и со своими конструкторами.

вас опять понесло? это в java так вроде, а с++ такой ерундой не должен занимается... а вообще насчёт этого не уверен...есть какой-то пруфф? или какой код, в котором в ассемблированном виде имеет значительные различия...

95% процентов проблем находятся между клавиатурой и стулом.

28

Fat-Zer пишет:

по логике он может вернуть 0 1 и 2, а на практике он может вернуть 100500 и это будет верно.

не. для классического компьютера только 0, 1, или 2. Для неклассического действительно 100500 может. А может и диск форматнуть.  smile

Fat-Zer пишет:

авот мой глупый gcc говорит, что это будет 0...

1) а что говорит ваш g++?
2) x это у вас константа? Тогда и x-- - --x; тоже константа, и вычисление происходит на этапе компиляции (а не в рантайме). Причём на этапе компиляции константные целые выражения вычисляются в точности как в С, с самой высокой степенью оптимизации. А в этих условиях получается именно 0.

Fat-Zer пишет:

а ещё где-то читал, что это UB.

а вам об этом компилятор ваш разве не сказал?  oO
мой меня за такое быдлокодером в открытую обзывает  wink
Конечно UB. Но вот только не в С++.
Точнее говоря, я точно не знаю, является-ли этот быдлокод UB с т.з. стандарта C++, или нет. С++ вообще довольно запутанный язык, и написать быдлокод на нём куда как проще. (и часто компилятор молчит в тряпочку).

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

29

Fat-Zer пишет:

вас опять понесло? это в java так вроде

про джаву - не в курсе.

Fat-Zer пишет:

а с++ такой ерундой не должен занимается... а вообще насчёт этого не уверен...есть какой-то пруфф? или какой код, в котором в ассемблированном виде имеет значительные различия...

ну под рукой нет конечно. но на самом деле - так и есть. конечно, компилятор может и не так считать. ЧСХ - стандарт это позволяет. С++ специально так построен - там костыль на костыле: например
int x = 17;
это на самом деле
int x(17);
т.е. вызов конструктора по умолчанию. Естественно, на деле вызывается конструктор копирования по умолчанию, и в коде это выглядит точно так-же.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

30

drBatty пишет:

1) а что говорит ваш g++?
2) x это у вас константа? Тогда и x-- - --x; тоже константа, и вычисление происходит на этапе компиляции (а не в рантайме). Причём на этапе компиляции константные целые выражения вычисляются в точности как в С, с самой высокой степенью оптимизации. А в этих условиях получается именно 0.

он это и говорит... пробовал и так, и эдак...

drBatty пишет:

а вам об этом компилятор ваш разве не сказал?

не пишу -Wall по всем мелочам))

drBatty пишет:

С++ вообще довольно запутанный язык, и написать быдлокод на нём куда как проще.

си не такой запутанный, но написать на нём быдлокод ещё проще smile

ЗЫ: ещё один UB:

x = y =  x-- - --x;

у меня x = -1; y=0; в общем причины понятны, но смотрится забавно smile

95% процентов проблем находятся между клавиатурой и стулом.