С++

Автор From_Odessa, 28 мая 2024, 11:43

« назад - далее »

From_Odessa

В свое время я немного выучил этот язык и писал на нем кое-какие небольшие программы. Было это двадцать лет назад, потом забросил. Собственно, это единственный язык программирования, который я знаю.

Есть у нас те, кто на нем программирует или программировал? Если да, как он вам? По сравнению с другими, например. К

Кто знает, поясните, пожалуйста, почему С++ - это язык объектно-ориентированного программирования, а, например, ТурбоПаскаль - нет? В чем тут значимое различие?

Интересно, почему в С++ нет строкового типа данных?

Какой тип вы прописываете для главной функции:

int main ()

или

void main ()

Почему?

Я пользовался Microsoft C++, чуть-чуть - Borland. А Вы?

С++ ещё играет большую роль в программировании или уже устарел/устаревает?

Oiseau

#1
Меня пытались ему научить, но на данном отрезке жизни (пока что) не выходит.

Сравнивать мне не с чем, кроме Паскаля, который был в детстве и в котором я далеко не продвинулся. Скажем так, Паскаль был основой, в аналогии с которой я воспринимаю С++.

Utgarda Loki

Цитата: From_Odessa от 28 мая 2024, 11:43Есть у нас те, кто на нем программирует или программировал? Если да, как он вам? По сравнению с другими, например.
"С" лучше. Потому что проще.

Цитата: From_Odessa от 28 мая 2024, 11:43Кто знает, поясните, пожалуйста, почему С++ - это язык объектно-ориентированного программирования, а, например, ТурбоПаскаль - нет? В чем тут значимое различие?
Турбо Паскаль — это не язык программирования, а интегрированная среда разработки от компании Borland. В ранних версиях использовался обычный Паскаль, в поздних — Object Pascal, разработанный Apple. И он был таким же ООП, как и С++.

_Swetlana

Все языки программирования (которыми пользовалась) изучала сама в стародавние времена, с помощью бумажных учебников. То ли дело сейчас: изучаю питон с помощью интернета + статей на хабре и курсов на степике. Очень удобно, когда есть тренажеры кода.
Много программировала в Delphi 7 на паскале, но без ООП. Удобная среда разработки была, всё там было. Наклал на форму разных готовых компонентов - интерфейс готов! И диплом магистерский в 2020-м году тоже в дельфях сделала. ООП паскалевский в свое время учила, но мне он тогда не понравился. Когда делала последний хоздоговор, все время что-то узнавали у заказчика и постоянно приходилось переделывать всю программу, тогда пожалела, что не использовала ООП. Сейчас, прям в сию секунду, сижу больная, простуженная и изучаю питоновский ООП, протоколы итератора и думаю, а зачем мне эти протоколы.
 :) 

Зритель

Цитата: From_Odessa от 28 мая 2024, 11:43int main ()

или

void main ()

Почему?
Программа должна возвращать 0 в штатном режиме работы и другие значения при ошибках. Какие именно значения, разработчик придумывает сам и прописывает их смысл в инструкции. Обычно это 1, 2 и т.д. в зависимости от типа ошибки. Если у Вас программа при любых обстоятельствах отрабатывает штатно и Вам такая функция не нужна, то вопрос к проектированию, а всё ли учли.

From_Odessa

Цитата: Зритель от 30 мая 2024, 02:25
Цитата: From_Odessa от 28 мая 2024, 11:43int main ()

или

void main ()

Почему?
Программа должна возвращать 0 в штатном режиме работы и другие значения при ошибках. Какие именно значения, разработчик придумывает сам и прописывает их смысл в инструкции. Обычно это 1, 2 и т.д. в зависимости от типа ошибки. Если у Вас программа при любых обстоятельствах отрабатывает штатно и Вам такая функция не нужна, то вопрос к проектированию, а всё ли учли.

void main () не позволит понять, не отработала ли программа с ошибкой?

Зритель

Смотря кто понимает. Можно написать так, что человек всё поймёт, не используя этот стандартный интерфейс. Но есть программы, которые занимаются управлением другими программами, например следят за тем чтобы они выполнялись и корректно завершались. Они проверяют возвращаемое значение и если там будет void main(), для них это будет сигналом, что всё окей.

_Swetlana

Изучаю (с нуля) плюсы, но уже нужно писать программы с использованием библиотеки STL.
Читаю на хабре: "Библиотека STL как будто написана с ненавистью к тем, кто будет ею пользоваться".

Vesle Anne


_Swetlana

#9
Цитата: Vesle Anne от 30 июля 2024, 22:22А питон забросили?
Нет, на питоне душой и телом отдыхаю. Не думала, что в плюсах для самых простых вещей, типа передать строку (массив символов) в параметр функции, нужно подключать библиотеку и использовать функцию копирования. А работа с памятью! (указатели и всё такое). Я ещё помню, как просто это делалось в паскале.
Извините, вам запрещён просмотр содержимого спойлеров.

Vesle Anne

Понятно :) ну я-то с питоном теперь повязана :) но вообще не плохо бы еще что подтянуть. Пока думаю R или таки жахнуть по плюсам. R очень полезен в аналитике и статистике

Toman

Цитата: _Swetlana от 30 июля 2024, 22:41Не думала, что в плюсах для самых простых вещей, типа передать строку (массив символов) в параметр функции, нужно подключать библиотеку и использовать функцию копирования.
В плюсах это дело совершенно добровольное. Можете и не пользоваться библиотекой, а передавать какие-нибудь встроенные типы данных или свои собственные, собранные из встроенных. А пользоваться только тогда, когда это реально удобнее по каким-то причинам.

Цитата: _Swetlana от 30 июля 2024, 22:19Изучаю (с нуля) плюсы
С нуля - это прямо совсем с нуля, или всё-таки после классического Си (ну или, проще, не-ООПшного подмножества плюсов - там есть некоторые чисто косметические отличия в синтаксисе от старого классического Си)? Я б рекомендовал вначале освоить Си без всякого этого ООП вообще и без соотв. чисто плюсовских библиотек. Тогда гораздо более понятна логика, откуда что растёт, и что в принципе всё можно сделать на Си и без задействования ООП. (А, как я уже не раз говорил, по моему мнению, если программист работает над небольшой программой, которая делается им в одиночку или в составе небольшой команды, ООП ему объективно не нужно и только увеличивает трудозатраты и будущие проблемы с развитием этой программы по сравнению с обычным процедурным).

_Swetlana

#12
Цитата: Toman от 31 июля 2024, 00:02
Цитата: _Swetlana от 30 июля 2024, 22:41Не думала, что в плюсах для самых простых вещей, типа передать строку (массив символов) в параметр функции, нужно подключать библиотеку и использовать функцию копирования.
В плюсах это дело совершенно добровольное. Можете и не пользоваться библиотекой, а передавать какие-нибудь встроенные типы данных или свои собственные, собранные из встроенных. А пользоваться только тогда, когда это реально удобнее по каким-то причинам.

Цитата: _Swetlana от 30 июля 2024, 22:19Изучаю (с нуля) плюсы
С нуля - это прямо совсем с нуля, или всё-таки после классического Си (ну или, проще, не-ООПшного подмножества плюсов - там есть некоторые чисто косметические отличия в синтаксисе от старого классического Си)? Я б рекомендовал вначале освоить Си без всякого этого ООП вообще и без соотв. чисто плюсовских библиотек. Тогда гораздо более понятна логика, откуда что растёт, и что в принципе всё можно сделать на Си и без задействования ООП. (А, как я уже не раз говорил, по моему мнению, если программист работает над небольшой программой, которая делается им в одиночку или в составе небольшой команды, ООП ему объективно не нужно и только увеличивает трудозатраты и будущие проблемы с развитием этой программы по сравнению с обычным процедурным).
Не совсем с нуля, всё-таки три языка я знаю: паскаль, пролог и теперь уже питон  :) Пролог и питон написаны на сях. Эти несчастные плюсы я видела бессчетно, ибо студенты на них писали мои алгоритмы; но не учила и правильно делала: если бы выучила плюсы, то сама бы исправляла ошибки в их программах (я по натуре человек слишком добрый для преподавания). А по незнанию языка ткнула - неправильно! исправляйте!  ;D
 
Есть такой обучающий ресурс SoloLearn, с телефона там учишься всем языкам и весьма поверхностно (хотя есть какая-то программа pro за дополнительные деньги, про неё не знаю). Я непонятным для себя образом пролезла туда совершенно бесплатно. За два прошедших дня прошла там курс Введение в C и Введение в C++ (большой разницы с сями не заметила... ну разве что добавили питоновского синтаксического сахара); сейчас застряла на продвинутом C++, т.к. они галопом перешли к ООПам.

ЦитироватьВ плюсах это дело совершенно добровольное.
Дело не добровольное, это заданье. Часть программы написана автором курса, обучающемуся нужно её дописать. Среди прочего, передать массив символов в функцию. И программа не компилируется, пока в комментариях не подглядишь, как какой-то добрый человек показывает какой-то умонепостижимый способ. Насколько проще паскаль, и неудивительно, написан на алголе, а не вот на этом всем.
 

From_Odessa

Цитата: _Swetlana от 30 июля 2024, 22:41Не думала, что в плюсах для самых простых вещей, типа передать строку (массив символов) в параметр функции, нужно подключать библиотеку и использовать функцию копирования. А работа с памятью! (указатели и всё такое). Я ещё помню, как просто это делалось в паскале.

Насчёт строки - это, возможно, связано с тем, что в С++ нет строкового типа данных?

Указатели, как мне кажется, - это не очень сложно. Просто нужно привыкнуть.

_Swetlana

Цитата: From_Odessa от 31 июля 2024, 01:12
Цитата: _Swetlana от 30 июля 2024, 22:41Не думала, что в плюсах для самых простых вещей, типа передать строку (массив символов) в параметр функции, нужно подключать библиотеку и использовать функцию копирования. А работа с памятью! (указатели и всё такое). Я ещё помню, как просто это делалось в паскале.

Насчёт строки - это, возможно, связано с тем, что в С++ нет строкового типа данных?

Указатели, как мне кажется, - это не очень сложно. Просто нужно привыкнуть.
Есть тип string.
Сами по себе указатели просты и удобны, если не устраивать неразбериху в синтаксисе с использованием звездочки при объявлении переменной как указателя, и тут же использовать звёздочку для получения значения, и имя массива использовать как указатель на его первый элемент, и как итератор, к которому мы ещё что-то прибавляем, ну а & - это всегда адрес, и на том спасибо.

From_Odessa

Цитата: _Swetlana от 31 июля 2024, 01:59Есть тип string. 

Но это не обычный строковый тип, как я понимаю:

ЦитироватьВ языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки строкового типа данных, вместо этого используется массив символов

Utgarda Loki

Цитата: Vesle Anne от 30 июля 2024, 23:24Понятно :) ну я-то с питоном теперь повязана :) но вообще не плохо бы еще что подтянуть. Пока думаю R или таки жахнуть по плюсам. R очень полезен в аналитике и статистике
С универсальный язык. На нём даже ОС пишут. Но не без минусов, да. (Видимо поэтому в дальнейшем разработчикам пришлось аж два плюсика пририсовать в название ;)). Лично меня в С++ бесило, что когда его рекламировали, то писали: "кто не хочет, может по-старинке программировать, как в С, ну, с парой телодвижений". Ага, щаз.

From_Odessa

Цитата: Utgarda Loki от 31 июля 2024, 08:43(Видимо поэтому в дальнейшем разработчикам пришлось аж два плюсика пририсовать в название ;))

Это ж аллюзия на приращение в синтаксисе. Я не знаю, так ли оно оформляется в других языках.

Utgarda Loki

Цитата: From_Odessa от 31 июля 2024, 10:26Это ж аллюзия на приращение в синтаксисе.
Уж и не пошути. :(

Vesle Anne


Toman

Цитата: _Swetlana от 31 июля 2024, 01:59Есть тип string.
Это не встроенный тип, а библиотечный, пусть и из библиотеки, считающейся "стандартной". Странно удивляться необходимости использования библиотеки, если вам хочется (ну или, в данном случае, вам задано/от вас требуют) использовать библиотечный тип.

Toman

Цитата: Vesle Anne от 31 июля 2024, 11:59но не гуманный  :)
Намного более простой в изучении, чем большинство других языков. И уж чем Питон - точно.

Toman

Цитата: _Swetlana от 31 июля 2024, 01:59Сами по себе указатели просты и удобны, если не устраивать неразбериху в синтаксисе с использованием звездочки при объявлении переменной как указателя, и тут же использовать звёздочку для получения значения
Имхо, вполне логичный способ объявления. В чём тут неразбериха? Объявление не перепутать ни с чем другим.

Цитата: _Swetlana от 31 июля 2024, 01:59и имя массива использовать как указатель на его первый элемент, и как итератор, к которому мы ещё что-то прибавляем
Как будто первое не является естественным частным случаем второго при прибавлении нуля...

Цитата: _Swetlana от 31 июля 2024, 01:59ну а & - это всегда адрес, и на том спасибо
Увы, нет, не только. И это как раз то место синтаксиса, которое мне не нравится в этом языке. Потому что там как раз использование одного и того же символа в объявлениях и в выражениях имеет принципиально разный смысл и не следует той же логике, что в случае с * для указателей. И вообще непонятно, зачем оно нужно в принципе (и это я не про адрес переменной).

Vesle Anne

Цитата: Toman от 31 июля 2024, 12:49
Цитата: Vesle Anne от 31 июля 2024, 11:59но не гуманный  :)
Намного более простой в изучении, чем большинство других языков. И уж чем Питон - точно.
твое мнение как обычно не совпадает с мнением большинства :)

Toman

Цитата: Vesle Anne от 31 июля 2024, 13:45твое мнение как обычно не совпадает с мнением большинства :)
Популярность Питона обусловлена не его какой-то особой якобы простотой или мнением большинства, а насильственным навязыванием его со стороны некоторого меньшинства, обладающего очень странными представлениями о том, что такое простота и что такое сложность. Когда в учебном заведении его заставляют учить в обязательном порядке - тут и выбора никакого не остаётся. А есть, как минимум, вполне объективный показатель - объём полного описания синтаксиса. И он у Си определённо намного меньше.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
ALT+S — отправить
ALT+P — предварительный просмотр